使用pythons lxml库纠正xpath语法,以解析来自任意嵌套html标记的所有文本

时间:2011-05-30 10:20:50

标签: python html parsing xpath lxml

在python中使用lxml我创建了这个xpath语法

htmlPage.xpath("/html/body//a/text()")

它为我提供了所有<a> - 我想要的某些html范围内的标签。现在我遇到了<a> - 标签看起来像这样:

<a>This is a sentence with some <italic>italic text</italic>-formatting I want to parse.</a>

xpath返回一个列表,其中有一个元素比我期望的更多。我检查了一下并确认,它将上面提到的<a> - 标签拆分为两个列表元素,而不是一个。而不是字符串

"This is a sentence with some italic text-formatting I want to parse."

我得到两个字符串

"This is a sentence with some" # and
"-formatting I want to parse."

有没有办法纠正?

1 个答案:

答案 0 :(得分:2)

首先获取所有<a> - 标记

,我解决了我的问题
results = htmlPage.xpath("/html/body//a")

然后迭代返回的列表并在列表元素上使用text_content()

for a_tag in results:
    print a_tag.text_content() # prints bthe whol string: "This is a sentence with some italic text-formatting I want to parse."