请您帮助我从 - 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