Python Scrapy:如果xpath不';不存在?

Python Scrapy:如果xpath不';不存在?,python,python-3.x,xpath,scrapy,Python,Python 3.x,Xpath,Scrapy,我有一段代码,它用结果刮一张表,赢家用红色字体突出显示,输家只是文本。这是我正在抓取的网站的链接。 这就是它的样子: 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 Zeal

我有一段代码,它用结果刮一张表,赢家用红色字体突出显示,输家只是文本。这是我正在抓取的网站的链接。
这就是它的样子:

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
但有时没有赢家也没有输家(即平局),整个文本只是没有字体的文本。在这种情况下,它将返回索引器为:列表索引超出范围的赢家(因为不存在带字体的文本),而输家是两个团队,这就是我需要的。

我如何使它检查是否存在赢家,如果不存在赢家,则打印出输家?

在这种情况下,我将使用
extract\u first()


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

在这种情况下,我将使用
extract\u first()


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

或者,请注意,拆分项目要么以空白结束,要么以空白开始,您可以这样做

>>> import requests
>>> page = requests.get('http://www.lassen.co.nz/pickandgo.php?fyear=q&teama=NZL#hrh').content
>>> from scrapy.selector import Selector
>>> selector = Selector(text=page)
>>> for item in selector.xpath('.//td[@class="lftblu"]/text()'):
...     if item.extract().startswith(' ') or item.extract().endswith(' '):
...         continue
...     item.extract()
...     
'New Zealand v British Isles'

或者,请注意,拆分项目要么以空白结束,要么以空白开始,您可以这样做

>>> import requests
>>> page = requests.get('http://www.lassen.co.nz/pickandgo.php?fyear=q&teama=NZL#hrh').content
>>> from scrapy.selector import Selector
>>> selector = Selector(text=page)
>>> for item in selector.xpath('.//td[@class="lftblu"]/text()'):
...     if item.extract().startswith(' ') or item.extract().endswith(' '):
...         continue
...     item.extract()
...     
'New Zealand v British Isles'

是的,工作起来很有魅力。只需添加到末尾
其他:打印(Losser_2)
。谢谢编辑:看来你已经做到了,谢谢你,工作起来很有魅力。只需添加到末尾
其他:打印(Losser_2)
。谢谢编辑:看来你已经做了,谢谢