Vba 如何重新编码到XMLHTTP60中

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

我正试图将下面的代码复制到XMLHTTP中,因为IE太慢了。基本上,此代码将单击按钮“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

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一样。 任何帮助都将不胜感激