我知道这对你们中的一些人来说真的很容易。但我一直在互联网深处,我找不到答案。我需要获取
中的公司名称 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>
这是我的代码,我只是试着让一个标签开始,但我不能让它工作
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
事先感谢我知道这可能很简单。但我希望其他人也可能有同样的问题,这对他们也有帮助。 &#34; r = r + 1&#34;是因为这个名单上还有更多的公司。我只是想让它变得尽可能简单。再次感谢!
答案 0 :(得分:2)
您需要在表格中指定元素位置。 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>
我们可以忽略文档的其余部分,因为table元素有一个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故意让你很难从中获取数据。
答案 1 :(得分:1)