【问题标题】:Get text via XPath, ignoring markup通过 XPath 获取文本,忽略标记
【发布时间】:2015-12-30 18:37:27
【问题描述】:

我必须在 HTML 表格中检索文本,在单元格中,文本有时在 <div> 内,有时不在。

如何使 XPath 中的 div 成为可选?

我的实际代码:

stuff = tree.xpath("/html/body/table/tbody/tr/td[5]/div/text()")

想要的伪代码:

stuff = tree.xpath("/html/body/table/tbody/tr/td[5]/div or nothing/text()")

【问题讨论】:

  • normalize-space(/html/body/table/tbody/tr/td[5])

标签: python html xml xpath web-scraping


【解决方案1】:

您需要td[5] 元素的string value。使用 string()

stuff = tree.xpath("string(/html/body/table/tbody/tr/td[5])")

这将返回td[5]下方不带标记的文本。

你也可以通过normalize-space()间接获取元素的字符串值作为suggested by splash58 in the comments,如果你还想在末端修剪空白并在内部减少。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多