Vba 如何重新编码到XMLHTTP60中
我正试图将下面的代码复制到XMLHTTP中,因为IE太慢了。基本上,此代码将单击按钮“Mostrar Mas”,直到显示所有信息。然后我得到一张完整的表格,并把它写在一张纸上。 下面的代码与IE完美结合,但当我尝试用XMLHTTP重现它时,无法捕获属性“样式” 以下是我的尝试:Vba 如何重新编码到XMLHTTP60中,vba,xmlhttprequest,Vba,Xmlhttprequest,我正试图将下面的代码复制到XMLHTTP中,因为IE太慢了。基本上,此代码将单击按钮“Mostrar Mas”,直到显示所有信息。然后我得到一张完整的表格,并把它写在一张纸上。 下面的代码与IE完美结合,但当我尝试用XMLHTTP重现它时,无法捕获属性“样式” 以下是我的尝试: Sub WorksFine() Dim IE As Object Dim btn As MSHTML.HTMLDivElement Dim TRs As MSHTML.IHTMLEle
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
Sub-DoesnotWork()
Dim XMLReq作为新的MSXML2.XMLHTTP60
将HTMLDoc设置为新的MSHTML.HTMLDocument
Dim TRs作为MSHTML.IHTMLElementCollection
尺寸btn为HTMLDIVELENT
XMLReq.Open“POST”https://es.investing.com/equities/amazon-com-inc-earnings”“错
XMLReq.setRequestHeader“内容类型”、“应用程序/x-www-form-urlencoded”
XMLReq.setRequestHeader“接受”、“文本/普通”
XMLReq.setRequestHeader“X-request-With”,“XMLHttpRequest”
XMLReq.send
如果XMLReq.Status为200,则
MsgBox“问题”&vbNewLine&XMLReq.Status&“-”&XMLReq.statusText
出口接头
如果结束
HTMLDoc.body.innerHTML=XMLReq.responseText
设置btn=HTMLDoc.getElementById(“ShowMoreEarningHistory”)
直到(HTMLDoc.getElementById(“showMoreEarningsHistory”).getAttribute(“style”)=“display:none;”)
Debug.Print(HTMLDoc.getElementById(“showMoreEarningsHistory”).getAttribute(“style”))
点击
环
设置TRs=HTMLDoc.getElementsByTagName(“表”)
调试.打印TRs.item(1).innerText
端接头
我也不确定HTMLDoc对象是否在每次单击按钮时都会更新,就像浏览器中的IE一样。
任何帮助都将不胜感激