如果我们在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')
它不起作用。我真的需要这个。
答案 0 :(得分:0)
我认为你做错了。如果要提取第一个元素,只需使用具有更准确Xpath模式的extract_first()或extract(),使用硬编码索引是一种不好的做法。
无论如何,我认为更好的方法是尝试返回字符串或默认值。
response.xpath('//div[@id="not-exists"]/text()').extract_first() or 'not-found'