我正在尝试抓取一个网页以获取项目列表。当我在设置响应文本后msgbox oHtml.body.innerHTML时,我看到了所有HTML,因此该部分正在运行。但是,当实际查询文档以获取相关元素时,我收到错误。
我在Set dados ...
开头的行中收到以下错误
运行时错误'91'; 对象变量或未设置块变量
这是我的代码:
Private Sub Scrape_schedule()
Dim oHtml As HTMLDocument
Dim oElement As Object
Set oHtml = New HTMLDocument
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "https://example.com", False
.Send
oHtml.body.innerHTML = .responseText
End With
MsgBox oHtml.body.innerHTML
Set dados = oHtml.getElementsByClassName("resolutionWidget-state-list")(0).getElementsByTagName("li")
End Sub
没有奇异的.getElementsByTagName("li")
。函数.getElementsByTagName
返回一个集合,就像getElementsByClassName
一样。您需要指定索引号或循环通过集合来收集它们。
Set dados = oHtml.getElementsByClassName("resolutionWidget-state-list")(0).getElementsByTagName("li")(0)