【发布时间】:2013-02-15 05:42:53
【问题描述】:
我使用 lxml 在 Python 中编写了一个小型 html 解析器。很有用,不过我有个问题。
我有以下代码:
tags = doc.xpath('//table//tr/td[@align="right"]/b')
for tag in tags:
print(x.text.strip())
它工作正常。但如果<b> 元素内有<br> 标签,像这样:
<b> first-half <br>
second-half </b>
此代码只会将first-half 打印到<b> 标记中。
即使有<br> 标签,我如何才能获取<b> 中的所有文本?
谢谢。
【问题讨论】:
-
这是格式错误的 HTML。您是否尝试过获取该标签的子标签的文本?
-
您是将其解析为 XML 还是 HTML?
-
试试
x.text_content()。它应该能够过滤掉中断。 -
@Anorov,谢谢,真的很管用!
-
@shau-kote,我遇到了同样的问题。我能够用
text_content()解决它,但现在它加入了字符串。所以在你的例子中,它会产生first-halfsecond-half。你是怎么解决这个问题的?
标签: python html-parsing lxml