python - Xpath 中的空文本

标签 python xpath web-scraping

我编写了这行代码,用于通过 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/

相关文章:

xpath - XQuery和BaseX-如何将输出存储到组合框?

java - 单击 webTable 中特定记录的特定按钮

javascript - 无法使用 Node JS + cheerio 获取 html 元素

python - 在 python 中使用二进制向量评估预测

python - 为什么当我给它一个高于 16 毫秒的参数时 pygame.time.set_timer() 停止工作?

javascript - 如何根据计算样式查找元素

c# - 网站登录和抓取 HTML

python - 使用xpath提取图像

python - 如何使用 cx_freeze 和 win32com 强制绑定(bind)?

python - numpy - 在点网格上评估函数