广泛爬行与scrapy

时间:2016-05-16 02:34:39

标签: python scrapy web-crawler scrapy-spider

我正在尝试使用scrapy构建一个广泛的爬虫,如何运行许多并发蜘蛛,但同时阻止它们爬行到同一个域?

3 个答案:

答案 0 :(得分:0)

使用相同域运行多个蜘蛛的目的是什么? 你想加速爬行过程或蜘蛛有不同的逻辑吗?

  1. 如果是第一个,请查看docs。您应该在CONCURRENT_REQUESTS = 100文件中增加settings.py。一只蜘蛛就足够了。

  2. 如果蜘蛛有不同的逻辑,只需为每个蜘蛛创建一个separete类。

答案 1 :(得分:0)

我想我知道你来自哪里。您希望每个域分布式限制,以便您可以并行运行多个爬网,同时遵守每个网站的限制。要做到这一点,你需要开发一个与蜘蛛共享的东西(数据库?)对话的中间件。

一个众所周知的此类系统是scrapy-cluster

正如您所看到的here它支持细粒度的分布式控制,如何"硬"你击中了每个领域。

它还具有类似于您正在寻找的重复数据删除功能(请参阅here)。主要的区别在于它并没有重复Item但是请求但这应该更好。

答案 2 :(得分:0)

或者,如果您需要的是分布式抓取工具,则可以使用NutchStormCrawler代替。两者都设计为在分布式集群上运行,前者使用Apache Hadoop,后者使用后者Apache Storm。