Javascript 如何使用vba从网页内的表格值中正确提取内部文本?
不幸的是,我的旧帐户在更换网站主机时被删除了。我在整个网站上寻找解决方案,但只发现有人处理整个表,而不仅仅是试图获得一个值。我从以下网页获取innerText的净资产时遇到问题: 以下是我的尝试:Javascript 如何使用vba从网页内的表格值中正确提取内部文本?,javascript,html,excel,vba,Javascript,Html,Excel,Vba,不幸的是,我的旧帐户在更换网站主机时被删除了。我在整个网站上寻找解决方案,但只发现有人处理整个表,而不仅仅是试图获得一个值。我从以下网页获取innerText的净资产时遇到问题: 以下是我的尝试: Sub FetchAssets() Dim HTML As New HTMLDocument, elem As Object, URL As String URL = https://finance.yahoo.com/quote/UMBWX?p=UMBWX With Create
Sub FetchAssets()
Dim HTML As New HTMLDocument, elem As Object, URL As String
URL = https://finance.yahoo.com/quote/UMBWX?p=UMBWX
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", URL, False
Application.Wait Now + 1 / (24 * 60 * 60# * 2)
.send
Application.Wait Now + 1 / (24 * 60 * 60# * 2)
HTML.body.innerHTML = .responseText
Set elem = HTML.querySelector("NET_ASSETS-value")
MsgBox elem.innerText
End With
End Sub
此尝试导致:运行时错误“91”:未设置对象变量或With block变量
我尝试了完全相同的代码,并将elem.innerText
与elem.innerHTML
交换,结果是相同的错误。错误发生在MsgBox代码行上,它将元素设置为罚款
由于我的声誉低于10,我无法嵌入图像,但以下是网页中的代码行:
<td class="Ta(end) Fw(600) Lh(14px)" data-test="NET_ASSETS-value" data-reactid="89"><span class="Trsdu(0.3s) " data-reactid="90">539.25M</span></td>
539.25M
试试这个
Sub FetchAssets()
Dim html As New HTMLDocument, elem As Object, sURL As String
sURL = "https://finance.yahoo.com/quote/UMBWX?p=UMBWX"
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", sURL, False
.send
html.body.innerHTML = .responseText
Set elem = html.querySelector("td[data-test='NET_ASSETS-value']")
MsgBox elem.innerText
End With
End Sub
你知道为什么这个股票代码会通过一个N/A,但当我尝试VTSAX时,它会通过这个值吗?代码具有资产净值,因此我不确定为什么它会提取N/A?