如何解决无法在 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 举报,一经查实,本站将立刻删除。