網站上有一張表格,代碼如下。
<div id="InnerContent" style="height: 668px; position: relative; overflow: auto;">
<table class="Template" width="100%">
<tbody><tr class="Template">
<td class="View">
<table class="View" width="100%">
<tbody><tr class="View">
<td class="View">
<p>there are some wording.</p>
<div class="block-indent">
<table class="Main">
<tbody><tr class="Main">
<td class="Literal"><a href="/default.aspx?Guid=asda334&MenuId=&Action=edit&Reference=saada">1234567</a></td>
<td class="Literal"><b>Amended</b></td>
<td class="Literal">(aadasda) Total : 2232<br></td>
</tr>
<tr class="Main">
<td class="Literal"><a href="/default.aspx?Guid=sdfs2323&MenuId=&Action=Edit&Reference=edasd">123123</a></td>
<td class="Literal"><b>Amended</b></td>
<td class="Literal">(adasda) Total : 123<br></td>
</tr>
<tr class="Main">
<td class="Literal"><a href="/default.aspx?Guid=12321asada&MenuId=&Action=Edit&Reference=assada">97897</a></td>
<td class="Literal"><b>Amended</b></td>
<td class="Literal">(bdfgbgf) Total : 999<br></td>
</tr>
</tbody></table>
</div>
<table class="Main">
<tbody><tr class="Main">
<td class="Literal" nowrap="">abc:</td>
<td class="Field" title=""><span class="String">030</span></td>
<td class="Literal"> </td>
<td class="Literal" nowrap="">cde:</td>
<td class="Field" title=""><span class="String">1234567890</span></td>
</tr>
<tr class="Main">
<td class="Literal" nowrap="">Version:</td>
<td class="Field" title="older Version': 02"><span class="Changed String">03</span></td>
<td class="Literal"></td> <td class="Literal" nowrap="">Last Amended:</td>
<td class="Field" title="'Last Amended': 13 Sep 21"><span class="Changed Date">15 Sep 21</span></td>
<td class="Literal"> </td>
<td class="Literal" nowrap="">Revised:</td>
<td class="Field" title=""><span class="String"> </span></td>
</tr>
<tr class="Main">
<td class="Literal" nowrap="">Order:</td>
<td class="Field" title=""><span class="String">A (Amended)</span></td>
<td class="Literal"></td>
<td class="Literal" nowrap="">Order2:</td>
<td class="Field" title=""><span class="String">W (Order)</span></td>
</tr>
在應用“塊縮進”部分之前,我曾經使用以下代碼從網站獲取資料。
Sheets("Sheetname").Range("E5") = ie.document.getElementById("InnerContent").getElementsByClassName("Template")(0).getElementsByClassName("View")(0).getElementsByClassName("Main")(2).getElementsByClassName("Field")(0).innerText
結果是與“版本”相關的 02,因為它是第二個主表結果。在網站代碼中添加“block-indent”部分后,主表數量不再恒定。這意味著如果塊縮進有 3 個主表,版本可以放在第 5 個主表中,或者可以在塊縮進有 4 個主表的第 6 位。
我試圖獲取整個表,但我總是只能獲取“塊縮進”部分的資料。那么我如何獲取“版本”的資料?
uj5u.com熱心網友回復:
遍歷表格以找到您想要的表格。
Option Explicit
Sub demo()
Dim oDom As Object:
Set oDom = CreateObject("HtmlFile")
' read html from file for testing
Dim fso As Object, ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.opentextfile("table.html")
oDom.body.innerHTML = ts.readall
ts.Close
'
Dim tbl As HTMLTable, r As HTMLTableRow
For Each tbl In oDom.getElementsByTagName("table")
For Each r In tbl.Rows
If r.Cells(0).innerText = "Version:" Then
Debug.Print r.Cells(1).innerText
End If
If r.Cells(0).innerText = "abc:" Then
Debug.Print r.Cells(4).innerText
End If
Next
Next
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/357733.html
