0

很长一段时间以来,我一直在寻找这个问题的答案。下面我有两部分代码将网站的 html 加载到内存中。结果相同。但是当我使用“Get”方法时,de getelements 方法,例如 getelementsbyclassname 不起作用。我想使用更快的“获取”方法,但由于结果不同,我不能。在第一行代码中 getElementsByClassName 有效,但在第二部分它的结果仍然没有。

我真的不知道为什么,我已经卡了一段时间了。我希望在这里你能帮上忙。先感谢您。

<i>Dim IE As New SHDocVw.InternetExplorer
Dim HTMLDoc As New MSHTML.HTMLDocument
Dim URL As String
Dim Element1 As MSHTML.IHTMLElement, Element2 As MSHTML.IHTMLElement, 
Element3 As MSHTML.IHTMLElement
Dim Elementen As MSHTML.IHTMLElementCollection

URL = "https://www.google.nl/?gfe_rd=cr&dcr=0&ei=KXNcWsHNJ9OB4gTcjqvwCA"

IE.Visible = True
IE.navigate URL

Do While IE.readyState <> READYSTATE_COMPLETE
DoEvents
Loop

Set HTMLDoc = IE.document
Set Element1 = HTMLDoc.getElementsByClassName("gsfi")(0)
Set Element2 = HTMLDoc.getElementById("lst-ib")
Debug.Print Element1.className, Element2.className


Dim XMLPage As New MSXML2.XMLHTTP60
Dim HTMLDoc As New MSHTML.HTMLDocument
Dim URL As String
Dim Element1 As MSHTML.IHTMLElement
Dim Element2 As MSHTML.IHTMLElement

URL = "https://www.google.nl/?gfe_rd=cr&dcr=0&ei=KXNcWsHNJ9OB4gTcjqvwCA"

XMLPage.Open "Get", URL, False
XMLPage.send

HTMLDoc.body.innerHTML = XMLPage.responseText

Set Element1 = HTMLDoc.getElementsByClassName("gsfi")(0)
Set Element2 = HTMLDoc.getElementById("lst-ib")
Debug.Print Element2.className</i>
4

0 回答 0