Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用lxml解析HTML-如何在结果列表中保留空内容?_Python_Html_Parsing_Lxml_Lxml.html - Fatal编程技术网

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

Python 使用lxml解析HTML-如何在结果列表中保留空内容?,python,html,parsing,lxml,lxml.html,Python,Html,Parsing,Lxml,Lxml.html,我正在使用lxml解析html文件: from lxml import html tree = html.parse(myfile) data = tree.xpath('//p/text()') 我的html文件中有300个文本标记,但是len(data)只有250个,因为有时候我的html中会有。我希望这些数据以'nan'或'的形式包含在数据中 关于如何执行此操作的任何建议?//p/text()只会发现p元素的文本具有非空文本 相反,找到所有p元素,并为每个元素调用.text\u con

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

from lxml import html

tree = html.parse(myfile)
data = tree.xpath('//p/text()')
我的html文件中有300个
文本

标记,但是
len(data)
只有250个,因为有时候我的html中会有

。我希望这些数据以
'nan'
'
的形式包含在
数据中

关于如何执行此操作的任何建议?

//p/text()
只会发现
p
元素的文本具有非空文本

相反,找到所有
p
元素,并为每个元素调用
.text\u 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
>>从lxml导入html
>>> 
>>> 
>>>data=”“”
…text1

…text2

... """ >>> >>>tree=html.fromstring(数据) >>>data=tree.xpath(“//p/text()”) >>>len(数据) 2. >>> >>>data=[tree.xpath('//p')中p的p.text_content() >>>len(数据) 3.