2017-04-21 7 views
0

https://www.top40.nl/top40/2017/week-14からトップ40をダウンロードしようとしていますが、レコードの上位40個すべてのレコードを含む1大バッチデータを得ることはできません。誰でもこのデータを取得する正しいコードを教えてくれますか?私はポジション、アーティスト、ソングのタイトルをちょうどネイトします。MS Accessテーブルのインターネットからトップ40のデータをインポート

これまで私がこれまで行ってきたことです。

Dim IE As Object 
Dim dd As Variant 


Set IE = CreateObject("InternetExplorer.Application") 
IE.Visible = False 
IE.navigate "https://www.top40.nl/top40/2017/week-14" 

Do While IE.Busy 
    DoEvents 
Loop 

dd = IE.Document.getElementsByClassName("top40")(0).InnerText 

Set IE = Nothing 
Set objElement = Nothing 
Set objCollection = Nothing 

image HTML code

+0

リンクplsではなくhtmlを表示できますか。 –

+0

コードの一部の画像を追加しました –

答えて

1

このお試しください:なぜ)

1:

Dim Element As IHTMLElement 
Dim i As integer 
Dim artist as String 
Dim position As Integer 
For i=0 To IE.Document.getElementsByClassName("top40")(3).Children.Length 
     position = IE.Document.getElementsByClassName("top40")(0).Children(i).Children(0).innertext 
     artist = IE.Document.getElementsByClassName("top40")(3).Children(i).Children(2).Children(3).Children(1).Children(1).innertext 
Next i 

そして、アルバム名のために、私はあなたがそれを同じ方法で控除しましょう:)

説明( "top40")(3) - >MsgBox IE.Document.getElementsByClassName("top40").lengthは4を返します。これは1つがないことを意味しますそのクラス名を持つユニークな要素は、あなたがたとえば、これを行うことができます右のいずれかを選択するには、次のように要素を通過する

For i = 0 to IE.Document.getElementsByClassName("top40").length 
MsgBox IE.Document.getElementsByClassName("top40")(i).tagname 'you'll only get one with the OL tagname which is the last one (4th element but index 3) 
Next i 

2)が進む(これはそれを行うには複数の方法のうち1つの方法であります

  • インスペクタで、小さな矢印をクリックすると、ページ上の任意の要素を選択できます。 - >たとえば、アーティストの名前を選択します。最初の位置 - >これはHTMLコードのビットを表示します。
  • フォーム "top40"からこの特定の要素まで、子供または子ノードをナビゲートできます。さまざまな要素を理解するためにウォッチウィンドウを使用する方法を学びます。子ども(3)は、例えば4番目の子供を意味します。

これについてさらに詳しく知りたい場合はお知らせください。

+0

これを動作させることができましたか?私は 'position ='と 'artist ='に型の不一致がありました...私は自分の解決策を書こうとしていましたが、あなたの見解ははるかによく見えます。 –

+0

まだありません。私はいくつかの情報を得た。あなたは、マイクロソフトのHTMLオブジェクトlibaryとマイクロソフトのインターネットコントロールへの参照を作成する必要があります。あなたがそれを働かせて、それがうまくいかない場合、私に教えてください?私も試し続けます:-) –

+0

はい、これらの参照が必要です。何かが間違っているかどうか教えてください(行+メッセージ)。私はそれを試していないで書いたが、それは動作するはずです。 – Seb

関連する問題