Vba 无法按类名获取元素
我正试图在本页的技术摘要小部件中获得买入、卖出、中性的投票数: 这些元素是Vba 无法按类名获取元素,vba,excel,getelementsbyclassname,Vba,Excel,Getelementsbyclassname,我正试图在本页的技术摘要小部件中获得买入、卖出、中性的投票数: 这些元素是 <span class="tv-widget-technicals__counter-number redColor">2</span> <span class="tv-widget-technicals__counter-number neutralColor">10</span> <span class="tv-widget-technicals__coun
<span class="tv-widget-technicals__counter-number redColor">2</span>
<span class="tv-widget-technicals__counter-number neutralColor">10</span>
<span class="tv-widget-technicals__counter-number brandColor">8</span>
试试下面的方法。您所关注的内容将动态生成。即使您使用任何浏览器模拟器,如
IE
,也无法获取内容,除非您让浏览器等待一段时间以加载数字。底线是不能使用xmlhttp、winhttp或serverxmlhttp请求获取所需的输出,因为它们不处理动态内容。试一试:
Sub TestMacro()
Const URL As String = "https://in.tradingview.com/symbols/NSE-TCS/"
Dim IE As New InternetExplorer, oHtml As HTMLDocument, post As Object, R&
With IE
.Visible = True
.navigate URL
While .Busy Or .readyState < 4: DoEvents: Wend
Set oHtml = .document
End With
Application.Wait Now + TimeValue("00:00:05")
For Each post In oHtml.getElementsByClassName("tv-widget-technicals__counter-wrapper")
With post.getElementsByTagName("span")
R = R + 1: Cells(R, 1) = .Item(0).innerText
End With
Next post
End Sub
参考添加:
Microsoft Internet Controls
Microsoft HTML Object Library
试试下面的方法。您所关注的内容将动态生成。即使您使用任何浏览器模拟器,如
IE
,也无法获取内容,除非您让浏览器等待一段时间以加载数字。底线是不能使用xmlhttp、winhttp或serverxmlhttp请求获取所需的输出,因为它们不处理动态内容。试一试:
Sub TestMacro()
Const URL As String = "https://in.tradingview.com/symbols/NSE-TCS/"
Dim IE As New InternetExplorer, oHtml As HTMLDocument, post As Object, R&
With IE
.Visible = True
.navigate URL
While .Busy Or .readyState < 4: DoEvents: Wend
Set oHtml = .document
End With
Application.Wait Now + TimeValue("00:00:05")
For Each post In oHtml.getElementsByClassName("tv-widget-technicals__counter-wrapper")
With post.getElementsByTagName("span")
R = R + 1: Cells(R, 1) = .Item(0).innerText
End With
Next post
End Sub
参考添加:
Microsoft Internet Controls
Microsoft HTML Object Library
由于速度很慢,没有IE也能做到这一点吗。谢谢你的回答。那就试试硒吧。我已经在我的答案中详细说明了为什么IE在这种情况下是理想的。没有IE的情况下是否可能做到这一点,因为它很慢。谢谢你的回答。那就试试硒吧。我已经在回答中详细说明了为什么IE在这种情况下是理想的。