zoukankan      html  css  js  c++  java
  • scrapy主动触发关闭爬虫

    可以在直接spider、pipeline和downloaderMiddlewares中关闭爬虫

    在spider中时在方法里直接写

    self.crawler.engine.close_spider(self, 'cookie过期,停止运行')

    在pipeline和downloaderMiddlewares里

    spider.crawler.engine.close_spider(spider, '停止运行’)
    

    虽然这一行代码会停止爬虫,但是这一行代码的停止并不是立即停止

    原因是因为当我们不更改爬虫的setting.py文件的时候,默认配置是:

    # Configure maximum concurrent requests performed by Scrapy (default: 16)
    # CONCURRENT_REQUESTS = 32
    含义就是:Scrapy downloader 并发请求(concurrent requests)的最大值,默认: 16

    那么这个时候的问题来了,按照以上的写法,在队列里就已经有十几个请求了,你停止之后,这十几个请求依旧会执行下去,所以并不是立即停止,如果想改变的话,就必须改变此项配置,设为:

    CONCURRENT_REQUESTS = 1
    ---------------------
    作者:故意养只喵叫顺儿
    来源:CSDN
    原文:https://blog.csdn.net/qq_36745087/article/details/86624459
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    django笔记
    pandas dataframe的合并(append, merge, concat)
    pandas删除行删除列,增加行增加列
    github上值得关注的前端项目
    CSS布局奇淫技巧之--各种居中
    级联菜单
    鼠标移入移出改变透明度
    图片轮播特效
    图片放大镜效果
    css3多列布局
  • 原文地址:https://www.cnblogs.com/qiaoer1993/p/10919060.html
Copyright © 2011-2022 走看看