我知道这对你们中的一些人来说真的很容易。但是我一直在互联网上深入,我找不到答案。我需要获取内部的公司名称tbody tr td a eBay-tradera.com
和td class="bS aR" 970,80
/td /tr /tbody
<tbody id="matrix1_group0">
<tr class="oR" onmouseover="onMouseOver(this, false)" onmouseout="onMouseOut(this, false)" onclick="onClick(this, false)">
<td class="bS"> </td>
<td>
<a href="aProgramInfoApplyRead.action?programId=175&affiliateId=2014848" title="http://www.tradera.com/" target="_blank">
eBay-Tradera.com
</a>
</td>
<td class="aR">
<a href="/pan/aProgramInfoApplyRead.action?programId=175&affiliateId=2014848" title="/pan/aProgramInfoApplyRead.action?programId=175&affiliateId=2014848">175</a></td>
<td class="bS aR">0</td><td class="bS aR">0</td><td class="bS aR">187</td>
<td class="aR">0,00%</td><td class="bS aR">124</td>
<td class="aR">0,00%</td>
<td class="bS aR">26</td>
<td class="aR">20,97%</td>
<td class="bS aR">32</td>
<td class="aR">60,80</td>
<td class="aR">25,81%</td>
<td class="bS aR">5 102,00</td>
<td class="bS aR">0,00</td>
<td class="aR">0,00</td>
<td class="bS aR">
970,80
</td>
</tr>
</tbody>
这是我的代码,我只尝试让 a 标签开始,但我也无法让它工作
Set TDelements = document.getElementById("matrix1_group0").document.getElementsbytagname("a").innerHTML
r = 0
C = 0
For Each TDelement In TDelements
Blad1.Range("A1").Offset(r, C).Value = TDelement.innerText
r = r + 1
Next
事先谢谢我知道这可能很简单。但我希望其他人可能有同样的问题,这对他们也有帮助。 “r = r + 1”的原因是因为这个名单上有更多的公司。我只是想让它尽可能简单。再次感谢!
最佳答案
您将需要在表中指定元素位置。 Ebay 似乎混淆了类名,所以我们不能依赖这些是一致的。我通常也不会通过它们的表索引一致来依赖元素,但我看不到任何解决方法。
我假设这是您正在搜索的 HTML 文档
<tbody id="matrix1_group0">
<tr class="oR" onmouseover="onMouseOver(this, false)" onmouseout="onMouseOut(this, false)" onclick="onClick(this, false)">
<td class="bS"> </td>
<td>
<a href="aProgramInfoApplyRead.action?programId=175&affiliateId=2014848" title="http://www.tradera.com/" target="_blank">
eBay-Tradera.com <!-- <=== You want this? -->
</a>
</td>
<!-- ... -->
</tr>
<!-- ... -->
</tbody>
我们可以忽略文档的其余部分,因为表格元素有一个 ID。简而言之,我们假设
.getElementById("matrix1_group0").getElementsByTagName("TR")
将返回按外观排序的 html 行对象的集合。
Set matrix = document.getElementById("matrix1_group0")
Set firstRow = matrix.getElementsByTagName("TR")(1)
Set firstRowSecondCell = firstRow.getElementsByTagName("TD")(2)
traderaName = firstRowSecondCell.innerText
当然,您可以将这一切内联为
document.getElementById("matrix1_group0").getElementsByTagName("TR")(1).getElementsByTagName("TD")(2).innerText
但这会使调试更加困难。此外,如果网页以不同的格式呈现给您,那么这将不起作用。 Ebay 故意让您难以从其中刮取数据以确保安全。
关于excel - VBA Excel在HTMLObject中获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27115008/