我编写了这行代码,用于通过 XPath 创建列表
classes=tree.xpath('//a[@class="pathm"]/../../../../../td[3]/font/text()')
它创建一个列表。它们也是包含空文本的项目。列表不包含它们。它只包含非空值。我想在列表中没有文本的地方获取空字符串。请帮忙
最佳答案
您只能获取//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)
关于python - Xpath 中的空文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40959397/