gpt4 book ai didi

excel - 使用 Excel VBA 和 XML 抓取网站

转载 作者:行者123 更新时间:2023-12-04 21:31:39 24 4
gpt4 key购买 nike

我正在尝试抓取 Newegg 网站以获取产品价格。当我运行这段代码时,它就完成了这项工作。

Sub test()

Dim objIE As InternetExplorer
Set objIE = New InternetExplorer

objIE.Visible = True
objIE.Navigate "https://www.newegg.com/Product/Product.aspx?item=1TS-000E-083F2"

Do While objIE.ReadyState <> READYSTATE_COMPLETE
Loop

Debug.Print objIE.Document.getElementsByClassName("price-current")(0).Children(1).innerText

End Sub

但是,当我尝试使用 XML 来加快执行速度时,我得到了 运行时错误 91:对象变量或未设置 block 变量

下面是我正在尝试实现的一段代码。
Sub testxml()

Dim XMLPage As New MSXML2.XMLHTTP60
Dim HTMLDoc As New MSHTML.HTMLDocument



XMLPage.Open "GET", "https://www.newegg.com/Product/Product.aspx?item=1TS-000E-083F2", False
XMLPage.send

HTMLDoc.body.innerHTML = XMLPage.responseText


Debug.Print HTMLDoc.getElementsByClassName("price-current")(0).Children(1).innerText
End Sub

最佳答案

您正在尝试获取 innerText 2楼Child通过此代码获得的集合元素:

HTMLDoc.getElementsByClassName("price-current")(0)

发生此错误,因为错误提示中的“对象”是 HTMLDoc.getElementsByClassName("price-current")(0)此页面上不存在。

您可以通过以下方式进行检查:
Debug.Print HTMLDoc.getElementsByClassName("price-current").Length

它将为 0,表示不存在此类的元素。如果它存在用于 IE 自动化,则意味着该元素是通过 JavaScript 生成的 HTML 的一部分,并且 XMLHTTP 请求不会在其响应中包含它。

关于excel - 使用 Excel VBA 和 XML 抓取网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50605825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com