垂直型爬蟲架構設計(3)

    以前的幾篇博文已經大概的說了一些垂直型爬蟲的功能,如今簡單的介紹一下我所用的爬蟲整體框架的設計,涵蓋整個爬蟲的各個節點.
框架

    我所用的爬蟲主要分爲兩個部分,也就是兩個節點.    主節點與爬蟲節點.網站

    主節點負責全部的爬蟲任務調度工做,包括爬蟲任務的分發,爬蟲任務的重試等.同時也用於分配抓取任務,對於抓取任務作簡單的規劃整理等.google

     也許比較難以理解,其實也就至關於抓取任務的大管家,這個是我當時學SEO的時候想到的東西,百度爬蟲收錄網站的時候是有規律的.不少SEOer都會在天天固定的時間開始更新網站的內容,新增博文,並且因爲我是一個失敗的SEOer也就很奇怪,爲何百度爬蟲每天跑新浪去,怎麼就不來個人網站踩踩呢.我也更新了呀.有的時候我更新了好幾天才被爬蟲收錄.也就那時知道了什麼叫網站權重.google的PR權重等.從而設計了主節點.
spa

    主節點功能有時候不多,簡單來講就是根據網站的權重來分配抓取任務.可是有時候也會不少:會基於爬蟲抓取狀態來判斷這個抓取任務的成敗.對於這些集中進行處理.如: 抓取失敗,網站權重較高,是因爲那個爬蟲節點的外網連接問題,那麼就把該抓取任務分配到另外的抓取上,從而實現.再次抓取.
設計

    主節點會長時間維護一個抓取隊列.基於爬蟲的反饋與自身的整理來新增與刪減抓取隊列的任務.主節點會基於隊列來推給爬蟲集羣抓取的任務..
日誌


    爬蟲節點是最簡單的封裝請求,抓取數據,重試,記錄日誌.與解析等工做.    爬蟲會根據主節點發來的抓取任務來封裝成一個request,而後直接進入下載,下載完成解析頁面,而且存儲,頁面解析的同時會查找下次要抓取的連接,加入到待抓取隊列中.繼續下載,直到沒法獲取到待抓取連接,沒法發現新的連接.這時須要把抓取的結果發送給主節點,以便主節點對於抓取結果進行維護.通常節點間的數據交互比較簡單,能夠簡單的返回成功條數,錯誤條數(404,5XX),抓取時間等.
隊列

        爬蟲抓取任務完成後,會再次想主節點請求獲取新的抓取任務.再次開啓抓取.完成以上步驟...        
集羣


    下面是簡單的流程圖.
百度

    

相關文章
相關標籤/搜索