我需要刮大的网站,大约有10个类别和数千(我真的不知道多少)的文章在每个类别。最简单的方法是为每个类别创建一个蜘蛛,并为每个下一篇文章链接创建一个yield响应以进行进一步提取。
我想的是制作一个顶级蜘蛛,它可以从类别中提取文章urls到队列中。然后,第二级(文章)蜘蛛应该从队列中接收每一个固定数量的urls (比如100个),并且当蜘蛛完成时,另一个urls将被启动。以这种方式,我们可以控制很多蜘蛛,这是一个常数,比如说20b)我们可以选择预先计算文章的数量,c)蜘蛛的内存使用量有限。在以前的一个项目中,类似的效果很好。
这有意义吗?或者你可以从一只蜘蛛发出尽可能多的请求,这样就能正常工作了吗?
发布于 2016-05-02 12:49:11
你可以向一只蜘蛛发出尽可能多的请求。
这是因为scrapy不是一次处理所有的请求,它们都是排队的。
您可以用CONCURRENT_REQUESTS更改要在设置上处理的请求数,如果内存使用太高(比如100),这确实会导致内存使用问题。请记住,默认情况下,每个作业设置512 job内存。
https://stackoverflow.com/questions/36974680
复制相似问题