私はウェブサイトからいくつかの情報をスクラップするためにExcelを使用しようとしています。別のフィールドとしてWebサイトからデータを抽出してください
これは、ソースの上に表示するものである:
<tr class="even">
<td align="right">1</td>
<td><a href="/kld/en/1.html">Acrobatic Maneuver</a></td>
<td>Instant</td>
<td>2W</td>
<td>Common</td>
<td>Winona Nelson</td>
<td><img src="http://magiccards.info/images/en.gif" alt="English" width="16" height="11" class="flag2"> Kaladesh</td>
</tr>
だから私も持っているすべてを取得し、<td></td>
の間でデータを抽出したいしかし、私が今まで見つけたすべてがこれですコード
Sub getcards()
Dim IE As Object
Dim i As Long
Dim objCollection As Object
' Create InternetExplorer Object
Set IE = CreateObject("InternetExplorer.Application")
' You can uncoment Next line To see form results
IE.Visible = False
' URL to get data from
IE.Navigate "http://magiccards.info/query?q=%2B%2Be%3Akld/en&v=list&s=issue"
' Statusbar
Application.StatusBar = "Loading, Please wait..."
' Wait while IE loading...
Do While IE.Busy
DoEvents
Application.Wait DateAdd("s", 1, Now)
Loop
On Error GoTo abort
Application.StatusBar = "Searching for value. Please wait..."
Dim dd As String
Set objCollection = IE.document.getElementsByClassName("even")
For i = 0 To objCollection.Length
dd = IE.document.getElementsByClassName("even")(i).innerText
MsgBox dd
Next i
abort:
' Show IE
IE.Visible = True
IE.Quit
' Clean up
Set IE = Nothing
Application.StatusBar = ""
End Sub
それがデータを抽出するような方法で動作しますが、出力はすべて一緒1Acrobatic ManeuverInstant2WCommonWinona Nelson Kaladesh
です。
どうすれば個々のフィールドとして<td>
を理解できるのですか?簡単に抽出できますか?
'IE.document.getElementsByClassName( "偶数")は、(i).getElementsByTagName( "TD")(x)'はあなたがxがあるコレクションをループする必要があると思いますアイテム。 –
'IE.document.getElementsByClassName(" even ")(i).getElementsByTagName(" td ")(1)'を使って試しましたが、返されたのは '' [object HTMLTableDataCellElement] ' – Moacir
だったので、.innerTextを追加してください:) –