2017-07-31 22 views
1

このWebサイトからXBT/USDの値を抽出するのはobjetiveです。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クラスです。あなたが(0)のために行く必要がありますので、XBT/USDは最初の通貨である:

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

あなただけの価格を抽出したいので、あなたがそれに掘るする必要があります。 price要素は、あなたが(0)でpriceを取得する必要がありますので、再度、最初の発生である:

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

非常に明確な、本当にありがとうございました –

1

私にはいくつかの問題があります。あなたはそれぞれのステートメントが "PlusTick"に等しいすべてのクラス名を検索しており、この基準を満たす最後のステートメントはQTUMU17値であることがあります。私が見るもう一つの問題は、もしあなたがPlusTickというクラス名で検索すると、それが "PlusTick"だった場合にのみ価値を拾いますが、あなたのXBT/USDがダニを引く。私はhtmlであまり経験はありませんが、これがあなたの現在の出力をさらに理解する助けになることを願っています。

関連する問題