gpt4 book ai didi

python - 使用 lxml 进行 HTML 解析 - 如何在结果列表中保留空内容?

转载 作者:行者123 更新时间:2023-11-27 23:32:16 28 4
gpt4 key购买 nike

我正在使用 lxml 来解析 html 文件:

from lxml import html

tree = html.parse(myfile)
data = tree.xpath('//p/text()')

我有 300 <p>text</p>我的 html 文件中的标签,但是 len(data)只有 250 因为有时我会有 <p></p>在我的 html 中。我希望这些包含在 data 中作为'nan''' .

关于如何做到这一点有什么建议吗?

最佳答案

//p/text() 只会找到包含非空文本的 p 元素的文本。

相反,查找所有 p 元素并为每个元素调用 .text_content():

data = [p.text_content() for p in tree.xpath('//p')]

演示差异:

>>> from lxml import html
>>>
>>>
>>> data = """
... <p>text1</p>
... <p></p>
... <p>text2</p>
... """
>>>
>>> tree = html.fromstring(data)
>>> data = tree.xpath('//p/text()')
>>> len(data)
2
>>>
>>> data = [p.text_content() for p in tree.xpath('//p')]
>>> len(data)
3

关于python - 使用 lxml 进行 HTML 解析 - 如何在结果列表中保留空内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35229113/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com