【问题标题】:How to set a default value when Scrapy selector returns NoneScrapy选择器返回None时如何设置默认值
【发布时间】:2016-11-03 03:29:54
【问题描述】:

当我的 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"

有什么想法吗?谢谢

【问题讨论】:

    标签: python xpath web-scraping scrapy


    【解决方案1】:

    不需要做两次查询,一个简单的解决方案是传递一个默认值:

    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"
    

    【讨论】:

      猜你喜欢
      • 2019-04-13
      • 1970-01-01
      • 2019-09-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多