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).getElementsByTag‌​Name("tbody")‌(0).getElementsByTag‌​Name("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 的类名 (".") 的元素内。