尝试在HTML文档上使用getElementsByClassName设置变量时出现问题

问题描述 投票:0回答:1

我正在尝试抓取一个网页以获取项目列表。当我在设置响应文本后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
excel vba web-scraping
1个回答
0
投票

没有奇异的.getElementsByTagName("li")。函数.getElementsByTagName返回一个集合,就像getElementsByClassName一样。您需要指定索引号或循环通过集合来收集它们。

Set dados = oHtml.getElementsByClassName("resolutionWidget-state-list")(0).getElementsByTagName("li")(0)
© www.soinside.com 2019 - 2024. All rights reserved.