美文网首页
scrapy 主动退出

scrapy 主动退出

作者: zbharper | 来源:发表于2019-12-10 09:13 被阅读0次

    scrapy框架提供了几个退出条件参数,用于在满足某些条件时提前退出爬虫,这几个参数有:

    CLOSESPIDER_ITEMCOUNT = 10000  # 生成10000个item后退出
    CLOSESPIDER_TIMEOUT =100   # 超时100秒退出
    CLOSESPIDER_PAGECOUNT = 20000 # 收到20000个response后退出
    CLOSESPIDER_ERRORCOUNT = 100 # 发生100个错误后退出
    

    参考scrapy源代码,爬虫退出是调用了scrapy引擎的close_spider方法,因此,可以在pipeline中显式调用,用于控制主动退出

    class Pipeline(object):
        @classmethod
        def from_crawler(cls, crawler):
            return cls(crawler)
    
        def __init__(self, crawler):
            self.crawler = crawler
    
        def process_item(self, item, spider):
            # if 满足退出条件
            self.crawler.engine.close_spider(spider, "退出原因")
    

    相关文章

      网友评论

          本文标题:scrapy 主动退出

          本文链接:https://www.haomeiwen.com/subject/bzewgctx.html