目标是从这个网站中提取XBT / USD值:https://www.bitmex.com/我从另一个问题中获取此代码,并尝试根据需要编辑它,但它返回QTUMU17值。
Option Explicit
Sub BitMEX_BTC_USD()
'Open website
Dim IE As New SHDocVw.InternetExplorer
IE.Visible = True
IE.Navigate "https://www.bitmex.com/"
Do While IE.ReadyState <> READYSTATE_COMPLETE
Loop
'Extract USD value
Dim kfc As String
Dim oHTML_Element As IHTMLElement
For Each oHTML_Element In IE.Document.getElementsByTagName("span")
If oHTML_Element.className = "PlusTick" Then
kfc = oHTML_Element.innerText
End If
Next
'Value
Debug.Print kfc
End Sub
根据inspect元素的HTML代码:
<i class="price">2765.3</i>
提前感谢您的宝贵帮助。
答案 0 :(得分:2)
你应该专注于课堂名称。每种货币都在ticker-item
级以下。 XBT/USD
是第一种货币,因此您应该选择(0):
IE.document.getElementsByClassName("ticker-item")(0).innerText
由于您只想提取价格,因此需要深入研究。 price
元素是第一次出现,因此您需要使用(0)获取price
:
IE.document.getElementsByClassName("ticker-item")(0).getElementsByClassName("price")(0).innerText
答案 1 :(得分:1)
我看到了几个问题。您的每个语句都在搜索每个相等的类名&#34; PlusTick&#34;并且在网站上符合此标准的最后一个声明恰好是QTUMU17值。我看到的另一个问题是,如果你按类名PlusTick进行搜索,那么只有当它是&#34; PlusTick&#34;但是从网站上看,它会出现你的XBT / USD可能是一个减号的情况。我在html方面不是很有经验,但我希望这有助于你进一步了解你当前的输出。