scrapy 2.3 分布式爬行

2021-06-16 10:52 更新

Scrapy不提供任何以分布式(多服務(wù)器)方式運(yùn)行爬蟲的內(nèi)置工具。但是,有一些分發(fā)爬行的方法,這取決于您計(jì)劃如何分發(fā)爬行。

如果您有許多蜘蛛,那么分配負(fù)載的最明顯的方法就是設(shè)置許多ScrapyD實(shí)例,并將蜘蛛運(yùn)行分布在這些實(shí)例中。

如果您想在多臺機(jī)器上運(yùn)行一個(大)蜘蛛,通常需要對URL進(jìn)行分區(qū),以便爬行并將它們發(fā)送到每個單獨(dú)的蜘蛛。下面是一個具體的例子:

首先,準(zhǔn)備要爬網(wǎng)的URL列表并將其放入單獨(dú)的文件/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服務(wù)器上啟動一個蜘蛛運(yùn)行。蜘蛛會收到一個(蜘蛛)論點(diǎn) part 使用要爬網(wǎng)的分區(qū)的編號::

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
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號