gpt4 book ai didi

Python 碎片 : How to return nothing if xpath doesn't exist?

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:16 25 4
gpt4 key购买 nike

我有这段代码,它可以抓取带有结果的表格,获胜者以红色字体突出显示,失败者只是文本。这是 link到我正在抓取的网站。
这是它的样子:

winner_2 = selector.xpath('.//table[1]/tr[3]/td[4]/font/text()').extract()[0]
loser_2 = selector.xpath('.//table[1]/tr[3]/td[4]/text()').extract()[0]
print (winner_2 + loser_2)

结果是这样的:

New Zealand v Australia

但有时没有赢家也没有输家(即平局),整个文本只是没有字体的文本。在那种情况下,它返回获胜者并返回 IndexError: list index out of range(因为带有字体的文本不存在),失败者是两个团队,这正是我需要的。
我怎样才能让它检查是否存在赢家,如果不存在赢家,则打印出输家?

最佳答案

在这种情况下,我会使用 extract_first():

winner_2 = selector.xpath('.//table[1]/tr[3]/td[4]/font/text()').extract_first()
loser_2 = selector.xpath('.//table[1]/tr[3]/td[4]/text()').extract_first()
if winner_2 and loser_2:
print(winner_2 + loser_2)
else:
print(loser_2)

这样我们就避免了IndexError。如果缺少任何数据,它将是 None,我想这是合乎逻辑的。

关于Python 碎片 : How to return nothing if xpath doesn't exist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46039733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com