VBA:从HTML获取数据

目标是从这个网站提取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 

根据检查元素的HTML代码:

 <i class="price">2765.3</i> 

在此先感谢您的宝贵帮助。

你应该把重点放在这里的class级名称上。 每种货币都在ticker-item类别下。 XBT/USD是第一种货币,所以你应该去(0):

 IE.document.getElementsByClassName("ticker-item")(0).innerText 

既然你想提取的价格,你需要深入挖掘。 price元素是第一次出现,所以你需要得到的price (0):

 IE.document.getElementsByClassName("ticker-item")(0).getElementsByClassName("price")(0).innerText 

我看到一些问题。 你的每条语句都是通过每一个等于“PlusTick”的类名进行search,并且符合这个标准的最后一条语句正好是QTUMU17的值。 我看到的另一个问题是,如果您通过类名称PlusTick进行search,则只会在“PlusTick”提取值的情况下进行search,而从查看网站时将会出现您的XBT / USD可能成为减去打勾。 我不是非常有经验的HTML,但我希望这可以帮助您进一步了解您当前的输出。