scrapy 大量目标地址载入时 start_requests的处理问题

def start_requests(self):
    with open(“record.csv”) as f:
        reader = csv.DictReader(f)
        for item in reader:        
            yield scrapy.Request(url=item['url'], callback=self.parse_detail,dont_filter=True)

当存在大量的爬取任务需要导入时,看了下scrapy的文档说明,他应该是一次性的将里面的所有任务都生成一个请求对象,压入引擎中等待调度。我的理解正确吗?

请教下,如果这样的话,太多任务占用内存,等待很久才会轮到他们执行。
目前我准备采用的是,在压入一定的量后,time.sleep()等待一段时间。再继续载入任务。

有什么办法能解决这个问题吗?

阅读 5.6k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题