世紀網絡淺議搜索引擎的檢索、策略和存儲 |
作者:孫斌 發布時間:2009-01-20 瀏覽:1943次 |
本文簡單的分析了爬蟲抓取網頁的一些基本原理與大家同享,能基本了解網頁的幾個排名因素:鏈接的建設和網頁的布局,多多體會,希望能給大家有所幫助。 爬蟲的工作原理包括抓取,策略和存儲,抓取是爬蟲的基本勞動過程,策略是爬蟲的智慧中樞,存儲是爬蟲的勞動結果,我們按照由淺入深的過程來了解整個爬蟲的工作原理。 1:從種子站點開始抓取 基于萬維網的蝴蝶型結構,這種非線性的網頁組織結構,就會出現一個抓取順序的問題,這種抓取順序的策略必須保證盡可能地抓取所有網頁。 一般來說,爬蟲選擇抓取蝴蝶型左邊的結構為抓取出發點,典型的如sina和sohu這樣的門戶網站的主頁,每次抓取網頁之后分析其中的URL,這種字符串形式的鏈接是指向其他網頁的URL,它們指引著爬蟲抓取其他網頁。(基于這點我們可以初步理解引擎先左后右,先上后下的抓取原因了) a:深度優先的策略(Depth-First Traversal) 深度優先的遍歷策略類似家族繼承策略,典型的如封建帝王的繼承,通常為長子,如果長子去世,長孫的優先級大于次子的優先級(這點大家多多仔細分析琢磨下),如果長子和長孫都已經去世,那么次子繼承,這種繼承上的優先關系也稱深度優先策略。(從這點上我們可以了解到蜘蛛的抓取欄目頁先后順序) b:寬度優先的策略(Breadth-First Traversal) 寬度優先我們又稱為廣度優先,或者叫層次優先,例如:我們在給祖輩和父輩還有平輩敬茶的時候先給最年長的祖輩,其次為父輩,最后為平輩,在爬蟲抓取上也采取了這樣的策略?;谑褂脤挾扔邢薜牟呗灾饕蛴腥c: 1>首頁重要的網頁往往離種子比較近,例如我們打開新聞站的時候往往是最熱門的新聞,隨著不斷的深入沖浪,PV值增加,所看到網頁重要性越來越低。 2>萬維網的實際深度最多能達到17層,到達某個網頁的路徑深入很多,但是總存在一條很短的路徑。 3>寬度優先有利于多爬蟲的合作抓取(Mozk是根據前輩的資料分析和IIS日志分析,暫且認為,有不同見解,歡迎討論交流),多爬蟲合作通常先抓取站內連接,遇到站外連接然后開始抓取,抓取的封閉性很強。 附:鏈接的優化,避抓取鏈接的死循環,同時也避免該抓取的資源沒有得到抓取,浪費大量的資源做無用功。(如何建立合理的內部鏈接可以參照小站)。 2:網頁抓取優先策略 網頁的抓取優先策略也稱為“面頁選擇問題”(page selection),通常抓取重要性的網頁,這樣保證有限資源(爬蟲,服務器負載)盡可能的照顧到重要性高的網頁,這點應該很好理解。 那么哪些網頁才是重要性的網頁呢? 網頁的重要性判斷因素很多,主要有鏈接歡迎度(知道鏈接的重要性了吧),鏈接的重要度和平均深度鏈接,網站質量,歷史權重等主要因素。 鏈接的歡迎度主要是由反向鏈接(backlinks)的數量和質量決定,我們定義為IB(P)。 鏈接的重要度,是一個關于URL字符串的函數,僅僅考察字符串本身,比如認為“.com”“home”的URL重要度比“.cc”和“map”較高(這里是比方不是絕對,就如我們通常默認首頁index.**一樣,要定義其他名稱也可以,另外排名是個綜合因素,com的不一定排名就好,只是其中一個很小的因素而已),我們定義為IL(P) 平均連接深度,依筆者之見,根據上面所分析的寬度優先的原則計算出全站的平均鏈接深度,然后認為距離種子站點越近重要性越高。我們定義為ID(P) 我們定義網頁的重要性為I(P) 那么: I(p)=X*IB(P)+Y*IL(P) ID(P)由寬度優先的遍歷規則保證,因此不作為重要的指標函數,為了保證重要性高的網頁被抓取,所以,這樣的抓取完全是合理,科學的。 本文的第1點是講解的一個點,第二點是分析的一個面。 SEO的目標是提高網站的質量,提高網站的質量是提高網站用戶體驗友好度,提高網站用戶優化度的終極目標是離開SE做常青樹。畢竟SEO是一個排名的逆向推理過程,不可能全對,只是對數據的一種分析,任何資料只能是參考,還是要多靠自己的實踐 |