我只是使用scrapy redis重新实现的dupfilter和调度器来支持从中断中恢复(redis只包含两个键-dmoz:dupfilter & dmoz:requests),并使用一个项目管道在远程mongodb中存储项目。
但是,使用scrapy redis会减慢项目的处理速度,而不会影响请求和爬网的速度。当仅使用胶粘材料时,新零件的安装速度约为1000件/分钟;当使用scrapy redis时,它是0-4个项目/分钟。更具体地说,信息是在我按下ctrl-c时导出的,蜘蛛正在优雅地关闭,只处理剩余的项目,没有其他的赛车任务。
信息:抓取228页(47页/分钟),抓取7项(1项/分钟)
这不是一个新问题。我在scrapy redis的github页面中发现了一个问题,但是那里的建议不起作用(将scheduler\u idle\u before\u设置为接近0,但是引用源代码时默认为0)。https://github.com/rmax/scrapy-redis/issues/43
以下是我的一些设置:
LOG_LEVEL = 'DEBUG'
CONCURRENT_REQUESTS = 16
SCHEDULER_IDLE_BEFORE_CLOSE = 0
DUPFILTER_CLASS = 'scrapy_redis.dupfilter.RFPDupeFilter'
SCHEDULER = 'scrapy_redis.scheduler.Scheduler'
SCHEDULER_PERSIST = True
ITEM_PIPELINE = {
'dmoz.pipelines.dmozPipeline': 300
}
感谢您的关注!
暂无答案!
目前还没有任何答案,快来回答吧!