html 为元素附空值,lxml:当html标记文本内容为None时追加“None”或Null值

问题的根源是,xpath中的text()是要检索的元素的测试的一部分,因为对于某些p元素来说它不是元素,所以它不会被检索。在

解决方案是修改xpath以选择所有p元素,然后从中获取text。在import lxml.html as LH

xmlstr = """

T1

T2

T3

A1

A3

"""

html_root = LH.fromstring(xmlstr)

eol_table = None

for tbl in html_root.xpath('//table'):

p_elements = tbl.xpath('.//tr/td/p')

eol_table = [p_elm.text for p_elm in p_elements]

print eol_table

打印:

^{pr2}$

另一种情况,其中某些元素没有

(这个更新的请求是由Nijo提出的,他还接到了text_content()电话)xmlstr = """

T1

T2

T3

A1

"""

html_root = LH.fromstring(xmlstr)

eol_table = None

for tbl in html_root.xpath('//table'):

td_elements = tbl.xpath('.//tr/td')

eol_table = [td_elm.text_content() for td_elm in td_elements]

print eol_table

什么指纹['T1', 'T2', 'T3', 'A1', '', '']

如您所见,text_content()从不返回None,但在None的情况下返回空字符串''