如何从回调中返回空结果并继续抓取?

时间:2014-07-08 03:20:57

标签: python web-scraping scrapy

如果返回None或请求回调中的空列表 - 将终止抓取。如果我想忽略此请求并继续处理预定请求,该怎么办?

2 个答案:

答案 0 :(得分:0)

你有两个选择:

如果你没有使用yield

return
#or
return None

如果你确实使用了产量

#to interrupt parse function  execution
return

#to return None for current item and continue parse function execution
yield None
# or just do nothing

答案 1 :(得分:0)

在处理项目管道中的项目时,您需要使用scrapy异常DropItem

检查Scrapy文档中指定的example

E,G。来自文档的示例代码示例。

from scrapy.exceptions import DropItem

class PricePipeline(object):
    vat_factor = 1.15

    def process_item(self, item, spider):
        if item['price']:
            if item['price_excludes_vat']:
               item['price'] = item['price'] * self.vat_factor
               return item
            else:
               raise DropItem("Missing price in %s" % item)