2017-07-31 117 views
1

目標是從此網站中提取XBT/USD值:https://www.bitmex.com/我從另一個問題獲得了此代碼,並試圖根據需要對其進行編輯,但它返回QTUMU17值。根據檢查VBA:從HTML獲取數據

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> 

預先感謝您的寶貴幫助。

回答

2

你應該把重點放在這裏的類名上。每種貨幣都在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 
+0

非常清晰,非常感謝 –

1

我看到一些問題。您的每條語句都搜索與「PlusTick」相等的每個類名,並且符合此條件的最後一條語句恰好是QTUMU17的值。我看到的另一個問題是,如果您通過類名稱PlusTick進行搜索,那麼只有在它是「PlusTick」的情況下才會提取該值,但從查看該網站時可能會出現您的XBT/USD可能成爲減去打勾。我對html不是很有經驗,但我希望這可以幫助你進一步理解你當前的輸出。