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

jopen 9年前發布 | 13K 次閱讀 爬蟲 網絡爬蟲

   從事爬蟲方向開發馬上也將近兩年時間了,今天基友問我關于爬蟲的架構設計問題.其實這么久也想總結一下自己的整個開發的過程,架構的設計問題..對自己進行一些總結..僅作參考.

    1.爬蟲的分類 :

        對于我來說,爬蟲分為兩類:

            需要載入配置文件的爬蟲與不需要載入配置文件的爬蟲.

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

    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.垂直型爬蟲的垂直?

        垂直型爬蟲在剛開始做爬蟲的時候我就再想為什么叫垂直型爬蟲.現在寫了那么久也不是很理解,我大概覺得垂直的意思是垂直獲取,就好像是有目的有目標的直接去拿想要的東西,所以垂直...!

        垂直型爬蟲跟普通型的爬蟲不同的地方在于有目的性.相對于其他爬蟲,目的性非常的明確.就好象我要拿一篇文章,其他的東西都不要,那么垂直型爬蟲可以滿足你!

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

         個人認為:垂直型爬蟲更加適用于企業級,因為企業級所需資訊內容明確.而且垂直型爬蟲更加的小型,便于管理.實現功能定制化.


來自:http://my.oschina.net/CainGao/blog/506020

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!