分布式爬蟲概述
什么是分布式爬蟲:
多個(gè)爬蟲分布在不同的服務(wù)器上闯估,通過(guò)狀態(tài)管理器進(jìn)行統(tǒng)一調(diào)度,達(dá)到像URL去重等功能的爬蟲系統(tǒng)
分布式爬蟲的優(yōu)點(diǎn)
1) 充分利用多臺(tái)機(jī)器的寬帶加速
2)充分利用多機(jī)器的IP加速爬取速度
Scrapy分布式爬蟲原理
單機(jī)Scrapy爬蟲架構(gòu)
分布式爬蟲需要改進(jìn)的Scrapy
1)requests隊(duì)列集中管理(在架構(gòu)圖中SCHEDULER中管理)
2)URL去重集中管理
解決方法:
requests隊(duì)列存儲(chǔ)在單機(jī)的內(nèi)存當(dāng)中,URL去重原理也是存儲(chǔ)在內(nèi)存當(dāng)中的Set()集合中,解決這兩個(gè)問(wèn)題,
可以將這個(gè)隊(duì)列和集合存儲(chǔ)在數(shù)據(jù)庫(kù)中鸽捻,進(jìn)行統(tǒng)一的資源管理。
在選擇數(shù)據(jù)庫(kù)時(shí)推薦使用Redis數(shù)據(jù)庫(kù)泽腮,它是一個(gè)基于內(nèi)存的數(shù)據(jù)庫(kù)御蒲,將Requests隊(duì)列和URL集合存儲(chǔ)在內(nèi)存,避免數(shù)據(jù)落地诊赊,提高效率