我有一些包含以下内容的 html 文件:
<div>Chapter 1. <span>Contents of chapter N1.</span> </div>
<div>Chapter 2. <span>Contents of chapter N2.</span> </div>
我正在尝试提取这些标签中包含的文本并使用 xpath '//text()' 函数:
parser = etree.HTMLParser()
tree = etree.parse(StringIO(html),parser)
text = list(set( tree.xpath('//text()') ))
text = " ".join(text)
它工作正常,除了我想更改提取顺序。现在我得到以下结果:
N1章的内容。N2章的内容。第 2 章。第 1 章。
但我想得到结果:
第 1 章 第 1 章内容 第 2 章 第 2 章内容
除了递归处理从文档顶部到底部的每个标签之外,还有什么更好的方法吗?