scrapy自调度方案

scrapy写的爬虫都需要短时间进行循环爬取,但是频繁的调度在scrapy和scrapyd部署情况下日志非常难以收集及查错

所以在爬虫内添加了一个middlewares,作用是在爬虫要结束的时候并不结束爬虫,1.等待一个预先设定的时间,然后将整个爬虫的任务重新开启 2.或者爬虫结束的时候已经超过了设定的调度时间,直接把爬虫任务重新开启

单个爬虫使用的时候需要进行middleware引入且设定一个routine_interval参数

使用方法:

在spider的setting中引入此middleware并设定ROUTINE_INTERVAL参数

    custom_settings = {
        "ROUTINE_INTERVAL": 300, # 每300s调度一次
        "SPIDER_MIDDLEWARES": {
            'spiders.middlewares.RoutineSpiderMiddleware': 543,
        },
    }

代码位置:https://github.com/Jaccccccccccccccccccccccccccccck/scrapy_routine/blob/master/scrapy_routine.py

原文地址:https://www.cnblogs.com/Jacck/p/12889323.html