python - 通过 XPath 获取文本,忽略标记

标签 python html xml xpath web-scraping

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

我怎样才能制作一个 div在可选的 XPath 中?

我的实际代码:

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()")

最佳答案

你想要 string value td[5] 元素。使用 string() :

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

这将在 td[5] 下返回没有标记的文本。

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

关于python - 通过 XPath 获取文本,忽略标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34535209/

相关文章:

python - 使用Python 3.x打印实时SSH输出

python - 执行命令时出现ffmpeg语法错误

html - 如何调整 slider 的高度?

sql - 在 Hive 中,有没有办法解析同一 XML 系列中多次出现的同一标签?

python - Django Memcache session 异常行为

html - 灵活的布局以覆盖页面的其余部分并将高度分成两半供 child 使用

html - Bootstrap 导航栏以特定宽度创建两行

java - 从 XML 中读取有限数量的元素

xml - Eclipse Kepler 不自动生成 web.xml

python - 这段代码有什么问题?它不断写入相同的值