当Scrapy选择器返回None时如何设置默认值
问题内容:
当我的xpath选择器的结果返回None时,我试图设置默认值。当某些页面中的xpath节点不存在并且我要设置例如“ N /
A”或“未找到”时,就会发生这种情况。
我使用了以下代码,但我认为这不是干净高效的:
value = response.xpath(property.xpath).extract_first()
if(value != None):
data[property.name] = response.xpath(property.xpath).extract_first()
else:
data[property.name] = "N/A"
有任何想法吗?谢谢
问题答案:
无需两次查询,一个简单的解决方案是传递一个默认值:
data[property.name] = response.xpath(property.xpath).extract_first(default='N/A')
供以后参考,如果您不使用default关键字来重写自己的代码,我将查询一次并使用if / else:
value = response.xpath(property.xpath).extract_first()
data[property.name] = value if value else "N/A"