阅读(509) (0)

scrapy 2.3 分布式爬行

2021-06-16 10:51:10 更新

Scrapy不提供任何以分布式(多服务器)方式运行爬虫的内置工具。但是,有一些分发爬行的方法,这取决于您计划如何分发爬行。

如果您有许多蜘蛛,那么分配负载的最明显的方法就是设置许多ScrapyD实例,并将蜘蛛运行分布在这些实例中。

如果您想在多台机器上运行一个(大)蜘蛛,通常需要对URL进行分区,以便爬行并将它们发送到每个单独的蜘蛛。下面是一个具体的例子:

首先,准备要爬网的URL列表并将其放入单独的文件/URL::

http://somedomain.com/urls-to-crawl/spider1/part1.list
http://somedomain.com/urls-to-crawl/spider1/part2.list
http://somedomain.com/urls-to-crawl/spider1/part3.list

然后在3个不同的ScrapyD服务器上启动一个蜘蛛运行。蜘蛛会收到一个(蜘蛛)论点 part 使用要爬网的分区的编号::

curl http://scrapy1.mycompany.com:6800/schedule.json -d project=myproject -d spider=spider1 -d part=1
curl http://scrapy2.mycompany.com:6800/schedule.json -d project=myproject -d spider=spider1 -d part=2
curl http://scrapy3.mycompany.com:6800/schedule.json -d project=myproject -d spider=spider1 -d part=3