如何返回值可以作为参数提供,在scrapy中使用而不是None?

时间:2018-03-19 13:44:26

标签: python scrapy

如果我们在shell中尝试这个:

response.xpath('//div[@id="not-exists"]/text()').extract_first(default='not-found')

它将以“未找到”的形式返回。问题是当我尝试先删除并执行此操作时:

response.xpath('//div[@id="not-exists"]/text()')[1].extract(default='not-found')

它不起作用。我真的需要这个。

1 个答案:

答案 0 :(得分:0)

我认为你做错了。如果要提取第一个元素,只需使用具有更准确Xpath模式的extract_first()或extract(),使用硬编码索引是一种不好的做法。

无论如何,我认为更好的方法是尝试返回字符串或默认值。

response.xpath('//div[@id="not-exists"]/text()').extract_first() or 'not-found'