【发布时间】:2018-06-20 05:29:16
【问题描述】:
我一直在到处寻找解决此问题的任何可能方法。
我公司的所有数据都是通过生成静态 HTML 页面的门户网站访问的。不幸的是,我们的部门无法直接访问服务器,这将使我的生活变得轻松,所以我需要通过页面抓取这个门户来找到我需要的数据。我的导航很好,我在抓取元素命名或给定 ID 的地方非常有经验,但是这两者都没有。
不管怎样,背景不碍事。
我想从页面中抓取一个具有独特样式“empty-cells: show;”的表格:
<TABLE cellspacing=10 cellPadding=10 border="1" style="empty-cells: show;">
</TABLE>
或者第一行的标题总是包含相同的文本字符串。一旦我有了那个表,我就可以从中操作我需要的数据。这里的数据非常敏感,所以很遗憾我无法提供完整的页面代码。
我知道有很多关于 GetElementByRegex 的帖子,但我找不到真正解释如何使用它的帖子或网站。相反,他们都希望我安装他们的插件,这不是一个选项(我需要学习这个来满足我对知识的渴望)。
为了帮助我在下面添加了删除敏感数据的完整表格代码:
<TABLE cellspacing=10 cellPadding=10 border="0" width=100%>
<tr>
<td>
<TABLE cellspacing=10 cellPadding=10 border="1" style="empty-cells: show;">
<TR class="row0">
<TD style="width: 25%; background-color: #A3DCF5;"><strong>TITLE:</strong></TD>
<TD>LINE1</TD>
</TR>
<TR class="row1">
<TD> </TD><td>LINE2</td>
</TR>
<TR class="row0">
<TD> </TD><td>LINE3</td>
</TR>
<TR class="row1">
<TD> </TD><td>LINE4</td>
</TR>
<TR class="row0">
<TD> </TD><td>LINE5</td>
</TR>
</TABLE>
</td>
</tr>
</TABLE>
虽然还有许多其他表格,但使用 Len 检查不会帮助我筛选 TD 标签。
【问题讨论】:
-
我曾经有过类似的事情(也许),我做了很多试验和错误,并在表格集合中循环(使用
td标签)并返回表格,其中包含我想要的行数(那时我知道我有正确的表),然后我测试了行和列中的值。我相信表格的第一行和第二列的 sytnax 将是td.Rows(0).Cells(1).InnerText。 This link 并不完美,但它会给你一个开始。 -
谢谢,我看看这个,看看能不能解决。
标签: html vba excel web-scraping