天天看點

Python 分布式爬蟲

什麼是分布式爬蟲?

1.在預設情況下,scrapy爬蟲是單機爬蟲,隻能在一台電腦上運作,因為爬蟲排程器當中的隊列queue去重和set集合都是在本機上建立的,其他的電腦無法通路另一台電腦上記憶體的内容

2.分布式爬蟲用一個共同的爬蟲程式,同時部署到多台電腦上運作,這樣可以提高爬蟲速度,實作分布式爬蟲

分布式爬蟲的前提:

1.要保證每一台計算機都能夠正常的執行scrapy指令,能夠啟動爬蟲程式

2.要保證所有的爬蟲程式可以通路同一個隊列和一個set集合

scrapy_redis:引擎系統

想要保證多台機器共用一個queue列隊和set集合,scrapy中是結合scrapy_redis完成的,分布式爬蟲可以讓所有機器上的爬蟲程式,

從同一個queue隊列中擷取request請求,并且每個機器取出request請求的對象是不一樣的,直到所有request被請求完畢

分布式爬蟲的使用範圍/要求:

1.分布式爬蟲對電腦的性能有一定的要去

2.分布式爬蟲對網速也有一定的要求,電腦性能和網速如果不是很好,爬蟲效率還不如單機爬蟲

注意:并不是任何時候都可以使用分布式爬蟲,因為對硬體有要求,對公司的需求,要有一定的條件

分布式爬蟲經常和redis資料庫一起使用

redis資料的特點:

優點:

預設使用持久化資料方式

體積小,使用友善

如果存儲資料量較大,啟動速度很快

資料中的資料和記憶體中的資料可以互相通路

缺點:

從安全角度來說,持久化資料可能很容易崩潰,造成資料丢失

要實作分布式爬蟲,首先要配置伺服器主從:

配置主從的目的:

           1.達到備份的功能,一旦master出現崩潰,而資料庫中還有資料,可以将其中的一個slave重新設定為主伺服器,進而恢複redis的正常運作

2.一個redis伺服器負責讀寫,性能較低,通過主從來減輕一個redis的壓力

redis主從的配置:

redis作為緩存伺服器,主要是将資料在記憶體中進行緩存,但是一台機器的記憶體和性能是有限的

當對于redis部署到多态機器上,用于寫入資料的redis,稱之為master

redis主從的特點:

繼續閱讀