現在再生中のアーティストと曲をhttp://www.siriusxm.com/siriusxmhits1から引き出す必要があります。私はこれをInternet Explorerでウェブサイトにナビゲートすることができますが、長すぎるのでWINHTTP.WinHTTPRequest.5.1
とMSXML2.serverXMLHTTP
を使用しようとしましたが、特定のデータを取得できませんでした。私は近くにいると思うが、何かが足りない。以下はsiriusxm.comからのXHRを使用したウェブスクラブ
は、HTMLスニペットです:ここで
<div id="on-the-air-content" style="display: block;">
<div class="module-content theme-color-content-bg clearfix">
<div id="onair-pdt" style="display: block;">
<img alt="" src="//www.siriusxm.com/albumart/Live/2000/chainsmokers_58C328AC_t.jpg">
<p class="onair-pdt-artist">Chainsmokers/Coldplay</p>
<p class="onair-pdt-song">Something Just Like This</p>
</div>
...
</div>
...
</div>
は私の現在のコードです:
Sub GetData()
Dim getArtist As Object
Dim getSong As Object
Set xmHtml = New HTMLDocument
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "http://www.siriusxm.com/siriusxmhits1", False
.send
xmHtml.body.innerHTML = .responseText
End With
Set getArtist = xmHtml.getElementById("onair-pdt").getElementsByTagName("p")(0)
MsgBox (getArtist.innerText)
Set getSong = xmHtml.getElementById("onair-pdt").getElementsByTagName("p")(1)
MsgBox (getSong.innerText)
End Sub
私はInternet Explorerを起動する場合は、次のコードを使用して動作しますが、それは何のために時間がかかりすぎます私は実行する必要があります。
Sub GetData()
Dim DivID As HTMLObjectElement
Dim getArtist As Variant
Dim getSong As Variant
URL = "http://www.siriusxm.com/siriusxmhits1"
With IExplore
.Navigate URL
.Visible = False
Do While .readyState <> 4: DoEvents: Loop
Set doc = .document
Set DivID = doc.getElementById("onair-pdt")
getArtist = DivID.getElementsByClassName("onair-pdt-artist")(0).innerText
getSong = doc.getElementsByClassName("onair-pdt-song")(0).innerText
End With
End Sub
ありがとう、omegastripes。 json.basとすべての適切なリファレンスを追加しました。 JSON.Parse s、vJSON、sStateという行に問題があります。「コンパイルエラー:引数が間違っているか、プロパティの割り当てが正しくありません」json.basファイルのParse関数に移動すると、 1つの文字列(この場合は変数s)を探しているようなものです。私が "JSON.Parse s"に変更すると、私はそれを実行させることができますが、sStateは決して値を割り当てられず、次の数行の行で終了します。その文をスキップすると、vJSONを設定しようとすると「型が一致しません」というエラーが発生します。ありがとう。 – mh2017
@ mh2017私が投稿したJSON.basへのリンクが間違っていた、私は答えを編集した、リンクを確認してください。 – omegastripes
それはそれをしました。あなたのご意見ありがとうございます。あなたは実際に多くのことを教えてくれました。 – mh2017