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

    從事爬蟲方向開發立刻也將近兩年時間了,今天基友問我關於爬蟲的架構設計問題.其實這麼久也想總結一下本身的整個開發的過程,架構的設計問題..對本身進行一些總結..僅做參考.javascript

    1.爬蟲的分類 :
java

        對於我來講,爬蟲分爲兩類:
數據庫

            須要載入配置文件的爬蟲與不須要載入配置文件的爬蟲.架構

            其實也就是人們常說的垂直型爬蟲跟寬度(深度)遍歷爬蟲.優化

    2.爬蟲的架構:
網站

        1.寬度遍歷爬蟲.
搜索引擎

            作過SEO的朋友大概都知道,若是一個網站須要百度可以儘快的抓取,那麼僅僅優化關鍵詞,提升權重等都是比較簡單的優化,爬蟲友好性須要網站在建設的時候就考慮到爬蟲的友好.如:標籤設置,架構設計...
插件

            寬度遍歷爬蟲就是寬度抓取,網站在設計的時候就直接是按照寬度設計...不太好理解,也不太好解釋... 大概的意思就是深度少...如; 進入首頁以後---就能看到各個分類,點擊分類就能看到分類列表---點擊分類列表就是內容...減小與用戶的交互,也讓爬蟲能直接找到重點.
架構設計

            各大搜索引擎應用的都是寬度遍歷方式來抓取數據.不信你能夠建一個網站.設置十幾級深度..首頁-分類--再分類---再分類以後十幾級以後才能看到內容..你能夠試一下,爬蟲抓取的效果怎麼樣.設計

            寬度遍歷爬蟲比較常見的不少,Nutch、Heritrix等都是寬度遍歷爬蟲的典型表明,比較經常使用的就是Nutch.

    2.垂直型爬蟲

            垂直型爬蟲我我的感受是最近幾年才被提出的,垂直型爬蟲關注內容與準確還有效率.比較常見的就是輿情項目,財經項目等.僅僅抓取到有效有用的數據,而且在爬蟲 抓取之初就可以把抓取到的內容進行簡單的處理: 如.提取標題,內容,時間等.

            垂直型爬蟲注重效率,相對來講.一個網站有十萬個連接,寬度遍歷爬蟲須要把十萬個連接都下載到你的數據庫中,而垂直型爬蟲只須要下載對你有用的數據,也許僅有幾千或者一萬,若是垂直型爬蟲抓取這麼點數據比寬度遍歷爬蟲抓取的還慢,那麼這個項目在這點上就是個垃圾.

            垂直型爬蟲相對於寬度遍歷爬蟲又一個特別的地方是:寬度遍歷爬蟲是可定製的,根據某個網站訂製..好比:抓取QQ空間,新浪微博等,都是須要登錄的...或者是有些網站的內容須要javascript來調用才能顯示,那麼就須要javascript解析引擎來保證抓取的質量.插件定製是我對垂直型爬蟲作的又一個定義

           

    3.爬蟲的設計

        爬蟲想起來複雜作起來其實一點也不復雜,簡單來講就是網站連接發現,網站鏈接處理,連接下載---繼續發現連接...

        進入一個網站首先須要提供這個網站的網址.例如:        http://www.baidu.com         那麼獲得百度以後就須要下載該頁面,下載頁面以後能發現幾個連接.  http://news.baidu.com http://music.baidu.com   等, 得到這幾個連接以後就是打開這幾個連接,繼續得到新的連接....一直持續下去...

        若是,僅僅是這樣,那麼爬蟲就會'死'在這個網站...好比.在其餘頁面也會找到http;'//www.baidu.com 那麼再進入這裏.再一直這樣循環...就真的死了..因此須要對連接進行有效的管理,去重等...   在這個抓取過程當中,某個連接已經抓取過了,那麼在連接發現,或者是連接下載的時候就能夠直接把這個連接去掉,不進行下載.那麼以後發現的連接會愈來愈少,那麼整個網站的抓取也就會有個結束!

        OK,表達能力不是很好,簡單總結,不管編寫什麼類型的爬蟲,都須要這些:    連接發現--鏈接管理--連接下載--    那麼也就獲取到內容了.

    

    4.垂直型爬蟲的垂直?

        垂直型爬蟲在剛開始作爬蟲的時候我就再想爲何叫垂直型爬蟲.如今寫了那麼久也不是很理解,我大概以爲垂直的意思是垂直獲取,就好像是有目的有目標的直接去拿想要的東西,因此垂直...!

        垂直型爬蟲跟普通型的爬蟲不一樣的地方在於有目的性.相對於其餘爬蟲,目的性很是的明確.就好象我要拿一篇文章,其餘的東西都不要,那麼垂直型爬蟲能夠知足你!

        垂直型爬蟲設計跟寬度遍歷爬蟲的設計區別也不是很大,同樣.... 連接發現--鏈接管理--連接下載. 不過大部分的垂直型爬蟲多了一個     信息提取         提取出所需的內容是對垂直型爬蟲最大的考研,也是垂直型爬蟲最重要的功能. 因此在垂直型爬蟲上應該體現的是 連接發現-連接管理-連接下載等.!

         我的認爲:垂直型爬蟲更加適用於企業級,由於企業級所需資訊內容明確.並且垂直型爬蟲更加的小型,便於管理.實現功能定製化.

相關文章
相關標籤/搜索