有时如何使用 Xpath 从包含链接的表格单元格中提取数据?
Posted
技术标签:
【中文标题】有时如何使用 Xpath 从包含链接的表格单元格中提取数据?【英文标题】:Using Xpath how to extract data from table cells that contain links sometimes? 【发布时间】:2016-03-04 03:53:22 【问题描述】:我有这个 html 表格:
<table class="info">
<tbody>
<tr><td class="name">Year</td><td>2011</td></tr>
<tr><td class="name">Storey</td><td>3</td></tr>
<tr><td class="name">Title</td><td><a href="http://gov.kz/premera/">Premier</a></td></tr>
<tr><td class="name">Condition</td><td>Renovated</td></tr>
</tbody>
</table>
在此表中,数据的组织方式是每行包含 2 个包含在 <td>
标记中的单元格。第一个单元格包含有关数据类型的信息。例如房屋建造年份。第二个单元格包含年份信息本身,即 2011。
我正在尝试从第二个单元格中提取信息(它是:2011, 3, Premier, Renovated)
我使用这个 Xpath 表达式:
//table[@class="info"]//td[2]/text()
收到的输出(错误):
2011
3
Renovated
期望的输出:
2011
3
Premier
Renovated
如您所见,第三行中的第二个 <td>
而不仅仅是包含链接的文本,因此该行中的信息会丢失。因此,未收到所需的字符串“Premier”。
有时行中的单元格包含链接,有时它只是纯文本。有什么方法可以在这两种情况下从第二个单元格中提取数据(链接或仅给出文本)?
【问题讨论】:
【参考方案1】:只需在text()
之前添加第二个正斜杠:
//table[@class="info"]//td[2]//text()
这将从您选择的 td
的所有子节点中获取文本节点
【讨论】:
以上是关于有时如何使用 Xpath 从包含链接的表格单元格中提取数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用ruby中的电子表格gem从excel单元格中提取超链接地址?
使用 XPath 在使用 python 的 <td> 单元格中获取文本
Python - Win32Com - 如何从 Excel 电子表格单元格中提取超链接?