簡單分佈式爬蟲

簡單分佈式爬蟲

1、簡單分佈式爬蟲結構

主從模式,主從模式是指由一臺主機做爲控制節點,負責管理全部運行網絡爬蟲的主機,爬蟲只須要從控制節點那裏接收任務,並把新生成任務提交給控制節點就能夠了,算法

在這個過程當中沒必要與其餘爬蟲通訊,這種方式實現簡單、利於管理。而控制節點則須要與全部爬蟲進行通訊,所以可有看到主從模式是有缺陷的,控制節點會成爲整個系統的瓶頸,容易致使整個分佈式網絡爬蟲系統性能降低。網絡

  這次使用三臺主機進行分佈式爬取,一臺主機做爲控制節點,另外兩臺主機做爲爬蟲節點。爬蟲結構。分佈式

2、控制節點

  控制節點(ControINode)主要分爲URL管理器、數據存儲器和控制調度器。控制調度器經過三個進程來協調URL管理器和數據存儲器的工做:一個是URL管理進程,負責URL管理和將URL傳遞給爬蟲節點;一個是數據提取進程,負責讀取爬蟲節點返回的數據性能

2.1 URL管理器

以前的一種方式是採用的set內存去重的方式,若是直接存儲大量的url連接,尤爲是URL連接很長時候,很容易形成內存溢出,因此咱們將爬取過的URL進行md5處理。字符串通過通過MD5處理後的信息摘要長度爲128位,將生成的MD5摘要存儲到set後,能夠減小好幾倍的內存消耗,不過Python中的MD5算法生成的是256位,取中間的128位便可,咱們同時添加save_progress和load_progress方法進行序列化操做,將未爬取URL集合和已爬取的URL集合序列化到本地,保存當前的進度,以便下次付匯狀態。URL管理器URL代碼以下:url

 

 

2.2 數據存儲器

相關文章
相關標籤/搜索