我已经编写了这行代码来通过XPath创建列表
classes=tree.xpath('//a[@class="pathm"]/../../../../../td[3]/font/text()')
它创建一个列表。它们也是包含空文本的项目。列表不包含它们。它只包含非空值。我想在列表中取空字符串,只要它们没有文本。请帮忙
答案 0 :(得分:2)
如果有空文本(或者更确切地说是//font
),您只能获得None
并稍后使用循环获取文字或自己的文字
import lxml.html
data = '''
<font>A</font>
<font></font>
<font>C</font>
'''
tree = lxml.html.fromstring(data)
fonts = tree.xpath('//font')
result = [x.text if x.text else '' for x in fonts]
print(result)
如果你不知道列表理解是如何工作的 - 它就是这样做的
result = []
for x in fonts:
if x.text: # not None
result.append(x.text)
else:
result.append('')
print(result)