gpt4 book ai didi

vba - 从网站中提取数据作为单独的字段

转载 作者:行者123 更新时间:2023-12-02 14:55:28 27 4
gpt4 key购买 nike

我正在尝试使用 Excel 从网站上抓取一些信息。

这是源代码中显示的内容:

<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>作为一个单独的字段,这样我就可以轻松提取它?

最佳答案

当您在 objCollection 中循环遍历 i 时,您实际上是在循环遍历 ClassName 为“even”的所有元素,而不是到您想要的特定元素内的元素。

试试这个:

For i = 0 To objCollection.Length - 1
For c = 0 to IE.document.getElementsByClassName("even")(i).getElementsByTagName("td").Length - 1
dd = IE.document.getElementsByClassName("even")(i).getElementsByTagName("td")(c).innerText
MsgBox dd
Next c
Next i

关于vba - 从网站中提取数据作为单独的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41548580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com