使用VBA-对象变量或未设置块变量的HTML抓取数据

尝试做某事(别怀疑我,谷歌做起来有点困难),然后简单地创建一个列出了第一个描述的消息框。但是,关键是我想直接在搜索栏中输入内容然后搜索(而不是简单地填写URL的字符串部分)。我当时取得了不错的进展,但现在无法摆脱错误(运行时错误91)“未设置对象变量或With Block变量。”

基本上,我已经在搜索结果的HTML文档上调用了getElementsByClassname,并填写了所需的类。我知道这会返回元素的集合(因为搜索结果的类的名称基本相同),因此我索引到它给我的第一个类。然后,我只想通过MsgBoxing该元素的innerHtml打印出该HTML。但是,我最终遇到了以上相同的错误。在调用getElementsByClassname之后,我还尝试添加一个.getElementsByTagName而不是.innerText,并以相同的错误结束。换句话说,似乎每次我将此元素变量与另一个点方法一起使用时,都会出现此错误。不确定如何解决。

Sub test()

    Dim ie As Object
    Dim element As Object
    Dim text As String


    Set ie = CreateObject("InternetExplorer.Application")

    my_url = "https://www.bing.com"
    ie.Visible = True
    ie.navigate my_url

    Do While ie.Busy
            DoEvents
    Loop
    Wait 1

    ie.Document.getElementById("sb_form_q").Value = "123"

    ' Pressing enter
    SendKeys "{ENTER}"

    Set element = ie.Document.getElementsByClassname("b_caption")(0)
    MsgBox (element.innerHTML)
End Sub

Sub Wait(seconds As Integer)

    Application.Wait Now + TimeValue("00:00:0" & CStr(seconds))

End Sub

我只想要bing上第一个搜索结果的标题的MsgBox。如果有人可以帮助,那就太好了!显然,我在Webscraping中是新手,我希望使用从该项目中学到的概念来更新一个过时的系统。谢谢!

supercow2110 回答:使用VBA-对象变量或未设置块变量的HTML抓取数据

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3149991.html

大家都在问