如何在使用VBA进行网络抓取时从列表中进行选择

时间:2017-10-05 12:55:47

标签: excel vba web-scraping

我正在尝试使用下面的excel VBA代码从网站上的时间选择器中选择一个时间。虽然代码循环通过它不会选择09.我做错了什么?网站代码也在下面。

Set e = appIE.document.getElementbyid("timepicker-pickup").getElementsByTagName("li")
     For Each e In e
      If e.innerHTML = "09" Then
      e.Click
      End If
    Next

网站代码:

<div class="timepicker" id="timepicker-pickup">
    <div class="arrow"></div>
    <div class="icon close-btn"></div>
    <div class="inner-time-picker clearfix">
        <div class="section hours">
            <div class="up-arrow"><span class="icon arrow"></span></div>
            <div class="selectors">
                <ul>
                    <li data-value="00">00</li>
                    <li data-value="01">01</li>
                    <li data-value="02">02</li>
                    <li data-value="03">03</li>
                    <li data-value="04">04</li>
                    <li data-value="05">05</li>
                    <li data-value="06">06</li>
                    <li data-value="07">07</li>
                    <li data-value="08" class="selected">08</li>
                    <li data-value="09">09</li>
                    <li data-value="10">10</li>
                    <li data-value="11">11</li>
                </ul>
            </div>

2 个答案:

答案 0 :(得分:2)

试试这个:

Dim iL as iHTMLElement
Dim e As IHTMLElementCollection

Set e = appIE.document.getElementbyid("timepicker-pickup").getElementsByTagName("li")
For Each iL In e
  If il.innerText = "09" Then
  iL.Click
  End If
Next iL

答案 1 :(得分:1)

您可以使用以下查询的选择器

appIE.document.querySelector("#timepicker-pickup *[data-value='09']").Click

不需要循环。