无法在 excel 中获取网页上的表格 - innerhtml 响应没有表格内容

问题描述

我正在尝试使用 XMLHTTP 从网页(代码中提到的 url)获取表格,但我从代码中获得的响应不包含该表格。

网页上的按钮很少,我需要先点击它,然后才能在 excel 中获得结果。 首先,我需要点击运行扫描按钮 然后我需要点击 Volume Table header 并将其降序排序 最后在excel中提取表格

我还尝试了另一种复制内容方法方法是单击网页上提供的复制按钮并将其粘贴到 excel 中,但无法获得正确的语法。

请帮忙。

Option Explicit
Public Sub GetTable()
    Dim sResponse As String,html As HTMLDocument
    Set html = New HTMLDocument
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET","https://chartink.com/screener/evening-star",False
        .send
        sResponse = StrConv(.responseBody,vbUnicode)
    End With
    html.body.innerHTML = sResponse
    Debug.Print sResponse
    'ThisWorkbook.Worksheets("Sheet1").Cells(2,1).PasteSpecial
End Sub

编辑

现在我尝试打开 IE,然后获取表格内容,但它给出了运行时错误 438,对象不支持 For Each 行上的此属性方法。一件奇怪的事情是,当我尝试打开一个单独的 IE 窗口然后打开链接(没有 vba)时,它甚至没有加载整个页面。 Javascript 和其他脚本已启用。我正在使用 IE8。我一直在努力完成这项工作,但没有成功。我请求一些帮助以获得所需的输出

Sub REQUESTXML()
    Dim IE As New InternetExplorer
    Dim elem As Object
    Dim x As Long
    
    IE.Visible = True
    IE.navigate "https://chartink.com/screener/evening-star"
    
    do while IE.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
    Do Until IE.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
    
    x = 1
    For Each elem In IE.document.getElementsByID("table table-striped scan_results_table dataTable no-footer")
        Sheets(1).Range("A" & x).Value = elem.innerText
        x = x + 1
    Next elem

    IE.Quit
End Sub

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)