如何解决如何重新编码为XMLHTTP60
由于IE太慢,我试图将下面的代码复制到XMLHTTP中。基本上,此代码将单击“ Mostrar Mas”按钮,直到显示所有信息。然后,我得到完整的表格并将其写下来。 下面的代码与IE完美配合,但是当我尝试使用XMLHTTP再现它时,无法捕获属性“样式”。
这是我的尝试:
Sub WorksFine()
Dim IE As Object
Dim btn As MSHTML.HTMLDivElement
Dim TRs As MSHTML.IHTMLElementCollection
Dim Table As MSHTML.IHTMLTable
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://es.investing.com/equities/amazon-com-inc-earnings"
Do While IE.readyState = 4: DoEvents: Loop
Do Until IE.readyState = 4: DoEvents: Loop
Set btn = IE.document.getElementById("showMoreEarningsHistory")
Do Until (IE.document.getElementById("showMoreEarningsHistory").getAttribute("style") = "display: none;")
Debug.Print (IE.document.getElementById("showMoreEarningsHistory").getAttribute("style"))
btn.Click
Loop
Set TRs = IE.document.getElementsByTagName("table")
Debug.Print TRs.item(1).innerText
End Sub
这是我的尝试
Sub DoesnotWork()
Dim XMLReq As New MSXML2.XMLHTTP60
Dim HTMLDoc As New MSHTML.HTMLDocument
Dim TRs As MSHTML.IHTMLElementCollection
Dim btn As HTMLDivElement
XMLReq.Open "POST","https://es.investing.com/equities/amazon-com-inc-earnings",False
XMLReq.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
XMLReq.setRequestHeader "Accept","text/plain"
XMLReq.setRequestHeader "X-Requested-With","XMLHttpRequest"
XMLReq.send
If XMLReq.Status <> 200 Then
MsgBox "problem" & vbNewLine & XMLReq.Status & "- " & XMLReq.statusText
Exit Sub
End If
HTMLDoc.body.innerHTML = XMLReq.responseText
Set btn = HTMLDoc.getElementById("showMoreEarningsHistory")
Do Until (HTMLDoc.getElementById("showMoreEarningsHistory").getAttribute("style") = "display: none;")
Debug.Print (HTMLDoc.getElementById("showMoreEarningsHistory").getAttribute("style"))
btn.Click
Loop
Set TRs = HTMLDoc.getElementsByTagName("table")
Debug.Print TRs.item(1).innerText
End Sub
我也不确定每次单击按钮时是否都会更新HTMLDoc对象,就像在浏览器中的IE一样。 任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。