多次被人問到這個問題,看來需要做一點說明,這裡簡單介紹一下搜尋引擎的機器爬蟲的製作和一些基本要注意的事項。
說的簡單易懂一些,網路爬蟲跟你使用的〖離線閱讀〗工具差不多。說離線,其實還是要跟網路聯結,否則怎麼抓東西下來?
那麼不同的地方在**?
1】 網路爬蟲高度可配置性。
2】 網路爬蟲可以解析抓到的網頁裡的鏈結
3】 網路爬蟲有簡單的儲存配置
4】 網路爬蟲擁有智慧型的根據網頁更新分析功能
5】 網路爬蟲的效率相當的高
那麼依據特徵,其實也就是要求了,如何設計爬蟲呢?要注意哪些步驟呢?
1】 url 的遍歷和紀錄
這點 larbin 做得非常的好,其實對於url的遍歷是很簡單的,例如:
就可以得到乙個所由的 url 列表
2】多程序 vs 多執行緒
各有優點了,現在一台普通的pc 例如 booso.com 一天可以輕鬆爬下5個g的資料。大約20萬網頁。
3】時間更新控制
最傻的做法是沒有時間更新權重,一通的爬,回頭再一通的爬。
如果乙個網頁在連續5次爬取的時候都有更新,那麼將設定的爬取時間縮短為原來的1/2。
注意,效率是取勝的關鍵之一。
4】爬的深度是多少呢?
看情況了。如果你比較牛,有幾萬臺伺服器做網路爬蟲,我勸您跳過這一點。
如果你同我一樣只有一台伺服器做網路爬蟲,那麼這樣乙個統計您應該知道:
網頁深度:網頁個數:網頁重要程度
0 : 1 : : 10
1 :20 : :8
2: :600: :5
3: :2000: :2
4 above: 6000: 一般無法計算
好了,爬到**就差不多了,再深入一是資料量擴大了3/4倍,二是重要度確下降了許多,這叫做「種下的是龍種,收穫的是跳蚤。」
5】爬蟲一般不之間爬對方的網頁,一般是通過乙個proxy出去,這個proxy有緩解壓力的功能,因為當對方的網頁沒有更新的時候,只要拿到 header 的 tag就可以了,沒有必要全部傳輸一次了,可以大大節約網路頻寬。
apache webserver裡面紀錄的 304 一般就是被cache的了。
6】請有空的時候照看一下robots.txt
7】儲存結構。
搜尋引擎中網路爬蟲的設計分析
搜尋引擎中網路爬蟲的設計分析 1 網路爬蟲高度可配置性。2 網路爬蟲可以解析抓到的網頁裡的鏈結 3 網路爬蟲有簡單的儲存配置 4 網路爬蟲擁有智慧型的根據網頁更新分析功能 5 網路爬蟲的效率相當的高 那麼依據特徵,其實也就是要求了,如何設計爬蟲呢?要注意哪些步驟呢?1 url 的遍歷和紀錄 這點 l...
搜尋引擎 網路爬蟲
原文出自 瀏覽器和網路爬蟲是兩種不同的網路客戶端,都以相同的方式來獲取網頁 1 首先,客戶端程式連線到網域名稱系統 dns 伺服器上,dns伺服器將主機 名轉換成ip 位址。2 接下來,客戶端試著連線具有該ip位址的伺服器。伺服器上可能有多個 不同程序程式在執行,每個程序程式都在監聽網路以發現新的選...
搜尋引擎 網路爬蟲
5 多執行緒 主要目的減少cpu資源的浪費 通過網路爬蟲獲取網域名稱,得到網域名稱之後,查詢,對比,存到資料庫中,更新 拿新資訊,將一些訪問量大的資訊存入快取中 6 一般伺服器為30 40個執行緒 7 seo 搜尋排名優化技術 8 執行緒池 代替我們管理執行緒,相當於乙個執行緒框架,執行緒池中有乙個...