【问题标题】:XPath for HTML table cell contents starting from given contents从给定内容开始的 HTML 表格单元格内容的 XPath
【发布时间】:2015-07-20 13:06:03
【问题描述】:

这是表格格式的 HTML:

<tr><td style="width: 150px;">Development Name:</td><td><b>Bellewoods</b></td></tr>
<tr><td style="width: 150px;">Property Type:</td><td><b>Executive Condominium</b></td></tr>
<tr><td style="width: 150px;">Developer:</td><td><b>Qingjian Realty (Woodlands) Pte Ltd</b></td></tr>
<tr><td style="width: 150px;">Tenure:</td><td><b>99-year Leasehold</b></td></tr>
<tr><td style="width: 150px;"># of Floors:</td><td><b>30</b></td></tr>
<tr><td style="width: 150px;"># of Units:</td><td><b>561</b></td></tr>

我想在 csv 二进制文件中提取这些列:

Development Name,
Property Type,
Developer,
Tenure,
Floors,
Units

我正在使用这个 XPath,但它不起作用:

'//tr//td[@style="width: 150px;" and text()="Development Name:"]//td//b'

【问题讨论】:

  • 使用萤火虫检查。在评论中提供链接
  • 例如从这个 - 开发名称: Bellewoods 我将如何提取 Bellewoods,请注意它对我来说很重要,它应该来自开发名称?
  • 对于那个裸露的东西。 html/body/table/tbody/tr[1]/td[2]/b
  • 它不可能工作,在这种情况下,我有 3200 个链接,我希望从每个链接中提取这些信息字段。 Development Name, Property Type, Developer, Tenure, Floors, Units 如果我遵循节点值方法,我会得到错误的数据,因此对我来说,包含 2 个 的 很重要如果第一个 元素包含文本值 - 开发名称:,那么输出应该是下一个 值 = Bellewoods 在同一 元素内

标签: python html xml xpath html-parsing


【解决方案1】:

查看第一个td的文字,得到following td sibling

//tr/td[. = "Development Name:"]/following-sibling::td/b/text()

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签