Vba 使用 HTML 个元素创建 collection
Vba create collection with HTML elements
我正在尝试使用 VBA 捕获网络数据。
我有这样的 HTML 行:
<div class="table-wrapper">
<table class="mega-table">
<thead>
<tr>…</tr>
</thead>
<tbody>
<tr>…</tr>
<tr>…</tr>
<tr>…</tr>
<tr>…</tr>
</tbody>
</table>
</div>
如何为 "tbody" 创建 collection? (稍后我想遍历它包含的所有元素(所有"tr"))。
这应该可以满足您的需求。基本上你想要 select 包含 table 的元素,然后 select table 的所有 TR。
已更新以包含 selecting table 正文。
dim Elements as Object
Set Elements = Browser.Document.getElementsByClassName("mega-table")(0).getElementsByTagName("tbody")(0).getElementsByTagName("tr")
Sub IE()
' Internet Controls Libraray
' Microsoft HTML Controls Library
Dim I As SHDocVw.InternetExplorer
Dim D As HTMLDocument
Dim C As MSHTML.IHTMLElementCollection
Set I = New SHDocVw.InternetExplorer
I.Visible = True
I.Navigate ("http://www.whosebug.com")
While I.Busy Or I.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
Set D = I.Document
Set C = D.getElementsByTagName("TR")
End Sub
您可以使用 CSS select 或:
browser.document.querySelectorAll(".mega-table tbody tr")
这个returns一个nodeList而不是一个"collection";但你仍然可以循环它的长度。
它说 select tr
标签在 tbody
标签内,在具有 mega-table
的类名 ("."
) 的元素内。
我正在尝试使用 VBA 捕获网络数据。
我有这样的 HTML 行:
<div class="table-wrapper">
<table class="mega-table">
<thead>
<tr>…</tr>
</thead>
<tbody>
<tr>…</tr>
<tr>…</tr>
<tr>…</tr>
<tr>…</tr>
</tbody>
</table>
</div>
如何为 "tbody" 创建 collection? (稍后我想遍历它包含的所有元素(所有"tr"))。
这应该可以满足您的需求。基本上你想要 select 包含 table 的元素,然后 select table 的所有 TR。
已更新以包含 selecting table 正文。
dim Elements as Object
Set Elements = Browser.Document.getElementsByClassName("mega-table")(0).getElementsByTagName("tbody")(0).getElementsByTagName("tr")
Sub IE()
' Internet Controls Libraray
' Microsoft HTML Controls Library
Dim I As SHDocVw.InternetExplorer
Dim D As HTMLDocument
Dim C As MSHTML.IHTMLElementCollection
Set I = New SHDocVw.InternetExplorer
I.Visible = True
I.Navigate ("http://www.whosebug.com")
While I.Busy Or I.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
Set D = I.Document
Set C = D.getElementsByTagName("TR")
End Sub
您可以使用 CSS select 或:
browser.document.querySelectorAll(".mega-table tbody tr")
这个returns一个nodeList而不是一个"collection";但你仍然可以循环它的长度。
它说 select tr
标签在 tbody
标签内,在具有 mega-table
的类名 ("."
) 的元素内。