圖論與網絡爬蟲

 

廣度優先搜索 Breadth-First Search (BFS)

深度優先搜索 Depth-First Search (DFS)

 

網絡爬蟲:

從任何一個網頁出發,用圖的遍歷算法,自動訪問每個網頁並把它們存儲起來,完成這個功能的程序叫Web Crawlers.

 

構建網絡爬蟲的工程要點:

1、在有限時間裏最多的爬下最重要的網頁:

      重要:首頁。再擴大爬蟲,從首頁擴展鏈接。-----類似BFS

     爬蟲的分佈式結構 和 網絡通信的握手成本 有關。握手:下載服務器和網站的服務器建立通信的過程,這個過程需要額外時間。下載完一個網站才能再下載下一個網站------類似DFS

    網絡爬蟲的遍歷不是簡單地BFS or DFS,有一個相對複雜的 下載優先級排序的方法----調度系統,同時存在一個優先級隊列 Priority Queue。

2、頁面的分析和URL的提取。

      頁面解析出URL比較複雜,需要模擬瀏覽器運行一個網頁,才能得到裏面隱含的URL。

3、記錄哪些網頁已經下載過的小本本——URL表。

     採用哈希表,好處是,判斷一個網頁的URL是否在表中,平均只需要一次(或者略多的)查找。

     問題:哈希表會很大,一個服務器存儲不下。

                多臺服務器會對哈希表訪問與維護,哈希表服務器的通信工作爲瓶頸。

     解答:明確每臺下載服務器的分工,調度時看到某個URL就知道交給哪臺服務器去下載。

                明確分工之後,判斷URL是否可以下載可以採用批問詢和批處理,減少通信次數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章