网页抓取自 - https://www.reliancepetroleum.com/locateafuelstation



请您帮助我从 - https://www.reliancepetroleum.com/locateafuelstation 获取数据。这里必须为所有状态进行下拉选择。我想每天提取所有州的下拉搜索结果。这个网站总共有 22 -23 个州,我希望所有州信息都在 1 个 excel 表中。请您通过VBA代码或任何网络抓取方法自动执行此操作。

我已经对此进行了测试,它按预期工作以检索所有状态的数据,您只需修改行HTML.getElementById("storetab").innerText即可从所需的任何HTML元素中获取文本:

Enum READYSTATE
    READYSTATE_UNINITIALIZED = 0
    READYSTATE_LOADING = 1
    READYSTATE_LOADED = 2
    READYSTATE_INTERACTIVE = 3
    READYSTATE_COMPLETE = 4
End Enum
Sub Test()
Dim ie As New InternetExplorer
Dim HTML As HTMLDocument
Dim i As Long
strURL = "https://www.reliancepetroleum.com/locateafuelstation"
ie.Visible = True
ie.navigate strURL
Do While (ie.Busy Or ie.READYSTATE <> READYSTATE.READYSTATE_COMPLETE)
  DoEvents
Loop
Set HTML = ie.document
Set ctY = HTML.getElementById("idState")
NumberOfoptions = ctY.Options.Length
    For i = 1 To NumberOfoptions
        Set ctY = HTML.getElementById("idState")
        Do While (ie.Busy Or ie.READYSTATE <> READYSTATE.READYSTATE_COMPLETE)
          DoEvents
        Loop
        ctY.selectedIndex = i
        HTML.getElementById("idBtnSubmit").Click
        Do While (ie.Busy Or ie.READYSTATE <> READYSTATE.READYSTATE_COMPLETE)
          DoEvents
        Loop
        Sheet1.Cells(i, 1).Value = HTML.getElementById("storetab").innerText
        'ie.GoBack
        ie.navigate strURL
        Do While (ie.Busy Or ie.READYSTATE <> READYSTATE.READYSTATE_COMPLETE)
          DoEvents
        Loop
    Next i
End Sub

最新更新