2010年12月9日 星期四

關於搜尋引擎的一點分析

本文簡單的分析了爬蟲抓取網頁的一些基本原理與大家同享,能基本了解網頁的幾個排名因素:鏈接的建設和網頁的佈局,多多體會,寫的不好也別罵,謝謝!

爬蟲的工作原理包括抓取,策略和存儲,抓取是爬蟲的基本勞動過程,策略是爬蟲的智慧中樞,存儲是爬蟲的勞動結果,我們按照由淺入深的過程來了解整個爬蟲的工作原理。

從種子站點開始抓取
基於萬維網的蝴蝶型結構,這種非線性的網頁組織結構,就會出現一個抓取順序的問題,這種抓取順序的策略必須保證盡可能地抓取所有網頁。

一般來說,爬蟲選擇抓取蝴蝶型左邊的結構為抓取出發點,典型的如sina.comsohu.com這樣的門戶網站的主頁,每次抓取網頁之後分析其中的URL,這種字符串形式的鏈接是指向其他網頁的URL,它們指引著爬蟲抓取其他網頁。 (基於這點我們可以初步理解引擎先左後右,先上後下的抓取原因了)

深度優先的策略(Depth-First Traversal)
深度優先的遍歷策略類似家族繼承策略,典型的如封建帝王的繼承,通常為長子,如果長子去世,長孫的優先級大於次子的優先級(這點大家多多仔細分析琢磨下),如果長子和長孫都已經去世,那麼次子繼承,這種繼承上的優先關係也稱深度優先策略。 (從這點上我們可以了解到蜘蛛的抓取欄目頁先後順序)

寬度優先的策略(Breadth-First Traversal)
寬度優先我們又稱為廣度優先,或者叫層次優先,例如:我們在給祖輩和父輩還有平輩敬茶的時候先給最年長的祖輩,其次為父輩,最後為平輩,在爬蟲抓取上也採取了這樣的策略。基於使用寬度有限的策略主要原因有三點:

首頁重要的網頁往往離種子比較近,例如我們打開新聞站的時候往往是最熱門的新聞,隨著不斷的深入衝浪,PV值增加,所看到網頁重要性越來越低。

萬維網的實際深度最多能達到17層,到達某個網頁的路徑深入很多,但是總存在一條很短的路徑。

寬度優先有利於多爬蟲的合作抓取(Mozk是根據前輩的資料分析和IIS日誌分析,暫且認為,有不同見解,歡迎討論交流),多爬蟲合作通常先抓取站內連接,遇到站外連接然後開始抓取,抓取的封閉性很強。

附:鏈接的優化,避抓取鏈接的死循環,同時也避免該抓取的資源沒有得到抓取,浪費大量的資源做無用功。 (如何建立合理的內部鏈接可以參照小站) SEO

網頁抓取優先策略
網頁的抓取優先策略也稱為面頁選擇問題(page selection),通常抓取重要性的網頁,這樣保證有限資源(爬蟲,服務器負載)盡可能的照顧到重要性高的網頁,這點應該很好理解。

那麼哪些網頁才是重要性的網頁呢?
網頁的重要性判斷因素很多,主要有鏈接歡迎度(知道鏈接的重要性了吧),鏈接的重要度和平均深度鏈接,網站質量,歷史權重等主要因素。

鏈接的歡迎度主要是由反向鏈接(backlinks)的數量和質量決定,我們定義為IB(P)

鏈接的重要度,是一個關於URL字符串的函數,僅僅考察字符串本身,比如認為.comhomeURL重要度比.ccmap 較高(這裡是比方不是絕對,就如我們通常默認首頁index.**一樣,要定義其他名稱也可以,另外排名是個綜合因素,com的不一定排名就好,只是其中一個很小的因素而已),我們定義為IL(P )

平均連接深度,個人鄙見,根據上面所分析的寬度優先的原則計算出全站的平均鏈接深度,然後認為距離種子站點越近重要性越高。我們定義為ID(P)

我們定義網頁的重要性為I(P)

沒有留言:

張貼留言