2 回答

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
關(guān)于搜索引擎的大話還是少說些,下面開始正文搜索引擎蜘蛛爬蟲原理:
1 聚焦爬蟲工作原理及關(guān)鍵技術(shù)概述
網(wǎng)絡(luò)爬蟲是一個(gè)自動提取網(wǎng)頁的程序,它為搜索引擎從Internet網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個(gè)或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件。聚焦爬蟲的工作流程較為復(fù)雜,需要根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。然后,它將根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁URL,并重復(fù)上述過程,直到達(dá)到系統(tǒng)的某一條件時(shí)停止,另外,所有被爬蟲抓取的網(wǎng)頁將會被系統(tǒng)存貯,進(jìn)行一定的分析、過濾,并建立索引,以便之后的查詢和檢索;對于聚焦爬蟲來說,這一過程所得到的分析結(jié)果還可能對以后的抓取過程給出反饋和指導(dǎo)。
相對于通用網(wǎng)絡(luò)爬蟲,聚焦爬蟲還需要解決三個(gè)主要問題:
(1) 對抓取目標(biāo)的描述或定義;
(2) 對網(wǎng)頁或數(shù)據(jù)的分析與過濾;
(3) 對URL的搜索策略。
抓取目標(biāo)的描述和定義是決定網(wǎng)頁分析算法與URL搜索策略如何制訂的基礎(chǔ)。而網(wǎng)頁分析算法和候選URL排序算法是決定搜索引擎所提供的服務(wù)形式和爬蟲網(wǎng)頁抓取行為的關(guān)鍵所在。這兩個(gè)部分的算法又是緊密相關(guān)的。
2 抓取目標(biāo)描述
現(xiàn)有聚焦爬蟲對抓取目標(biāo)的描述可分為基于目標(biāo)網(wǎng)頁特征、基于目標(biāo)數(shù)據(jù)模式和基于領(lǐng)域概念3種。
基于目標(biāo)網(wǎng)頁特征的爬蟲所抓取、存儲并索引的對象一般為網(wǎng)站或網(wǎng)頁。根據(jù)種子樣本獲取方式可分為:
(1) 預(yù)先給定的初始抓取種子樣本;
(2) 預(yù)先給定的網(wǎng)頁分類目錄和與分類目錄對應(yīng)的種子樣本,如Yahoo!分類結(jié)構(gòu)等;
(3) 通過用戶行為確定的抓取目標(biāo)樣例,分為:
a) 用戶瀏覽過程中顯示標(biāo)注的抓取樣本;
b) 通過用戶日志挖掘得到訪問模式及相關(guān)樣本。
其中,網(wǎng)頁特征可以是網(wǎng)頁的內(nèi)容特征,也可以是網(wǎng)頁的鏈接結(jié)構(gòu)特征,等等。
現(xiàn)有的聚焦爬蟲對抓取目標(biāo)的描述或定義可以分為基于目標(biāo)網(wǎng)頁特征,基于目標(biāo)數(shù)據(jù)模式和基于領(lǐng)域概念三種。
基于目標(biāo)網(wǎng)頁特征的爬蟲所抓取、存儲并索引的對象一般為網(wǎng)站或網(wǎng)頁。具體的方法根據(jù)種子樣本的獲取方式可以分為:(1)預(yù)先給定的初始抓取種子樣本;(2)預(yù)先給定的網(wǎng)頁分類目錄和與分類目錄對應(yīng)的種子樣本,如Yahoo!分類結(jié)構(gòu)等;(3)通過用戶行為確定的抓取目標(biāo)樣例。其中,網(wǎng)頁特征可以是網(wǎng)頁的內(nèi)容特征,也可以是網(wǎng)頁的鏈接結(jié)構(gòu)特征,等等。
基于目標(biāo)數(shù)據(jù)模式的爬蟲針對的是網(wǎng)頁上的數(shù)據(jù),所抓取的數(shù)據(jù)一般要符合一定的模式,或者可以轉(zhuǎn)化或映射為目標(biāo)數(shù)據(jù)模式。
另一種描述方式是建立目標(biāo)領(lǐng)域的本體或詞典,用于從語義角度分析不同特征在某一主題中的重要程度。
3 網(wǎng)頁搜索策略
網(wǎng)頁的抓取策略可以分為深度優(yōu)先、廣度優(yōu)先和最佳優(yōu)先三種。深度優(yōu)先在很多情況下會導(dǎo)致爬蟲的陷入(trapped)問題,目前常見的是廣度優(yōu)先和最佳優(yōu)先方法。
3.1 廣度優(yōu)先搜索策略
廣度優(yōu)先搜索策略是指在抓取過程中,在完成當(dāng)前層次的搜索后,才進(jìn)行下一層次的搜索。該算法的設(shè)計(jì)和實(shí)現(xiàn)相對簡單。在目前為覆蓋盡可能多的網(wǎng)頁,一般使用廣度優(yōu)先搜索方法。也有很多研究將廣度優(yōu)先搜索策略應(yīng)用于聚焦爬蟲中。其基本思想是認(rèn)為與初始URL在一定鏈接距離內(nèi)的網(wǎng)頁具有主題相關(guān)性的概率很大。另外一種方法是將廣度優(yōu)先搜索與網(wǎng)頁過濾技術(shù)結(jié)合使用,先用廣度優(yōu)先策略抓取網(wǎng)頁,再將其中無關(guān)的網(wǎng)頁過濾掉。這些方法的缺點(diǎn)在于,隨著抓取網(wǎng)頁的增多,大量的無關(guān)網(wǎng)頁將被下載并過濾,算法的效率將變低。
3.2 最佳優(yōu)先搜索策略
最佳優(yōu)先搜索策略按照一定的網(wǎng)頁分析算法,預(yù)測候選URL與目標(biāo)網(wǎng)頁的相似度,或與主題的相關(guān)性,并選取評價(jià)最好的一個(gè)或幾個(gè)URL進(jìn)行抓取。它只訪問經(jīng)過網(wǎng)頁分析算法預(yù)測為“有用”的網(wǎng)頁。存在的一個(gè)問題是,在爬蟲抓取路徑上的很多相關(guān)網(wǎng)頁可能被忽略,因?yàn)樽罴褍?yōu)先策略是一種局部最優(yōu)搜索算法。因此需要將最佳優(yōu)先結(jié)合具體的應(yīng)用進(jìn)行改進(jìn),以跳出局部最優(yōu)點(diǎn)。將在第4節(jié)中結(jié)合網(wǎng)頁分析算法作具體的討論。研究表明,這樣的閉環(huán)調(diào)整可以將無關(guān)網(wǎng)頁數(shù)量降低30%~90%。
4 網(wǎng)頁分析算法
網(wǎng)頁分析算法可以歸納為基于網(wǎng)絡(luò)拓?fù)?、基于網(wǎng)頁內(nèi)容和基于用戶訪問行為三種類型。
4.1 基于網(wǎng)絡(luò)拓?fù)涞姆治鏊惴í?br/>基于網(wǎng)頁之間的鏈接,通過已知的網(wǎng)頁或數(shù)據(jù),來對與其有直接或間接鏈接關(guān)系的對象(可以是網(wǎng)頁或網(wǎng)站等)作出評價(jià)的算法。又分為網(wǎng)頁粒度、網(wǎng)站粒度和網(wǎng)頁塊粒度這三種。
4.1.1 網(wǎng)頁(Webpage)粒度的分析算法
PageRank和HITS算法是最常見的鏈接分析算法,兩者都是通過對網(wǎng)頁間鏈接度的遞歸和規(guī)范化計(jì)算,得到每個(gè)網(wǎng)頁的重要度評價(jià)。PageRank算法雖然考慮了用戶訪問行為的隨機(jī)性和Sink網(wǎng)頁的存在,但忽略了絕大多數(shù)用戶訪問時(shí)帶有目的性,即網(wǎng)頁和鏈接與查詢主題的相關(guān)性。針對這個(gè)問題,HITS算法提出了兩個(gè)關(guān)鍵的概念:權(quán)威型網(wǎng)頁(authority)和中心型網(wǎng)頁(hub)。
基于鏈接的抓取的問題是相關(guān)頁面主題團(tuán)之間的隧道現(xiàn)象,即很多在抓取路徑上偏離主題的網(wǎng)頁也指向目標(biāo)網(wǎng)頁,局部評價(jià)策略中斷了在當(dāng)前路徑上的抓取行為。文獻(xiàn)[21]提出了一種基于反向鏈接(BackLink)的分層式上下文模型(Context Model),用于描述指向目標(biāo)網(wǎng)頁一定物理跳數(shù)半徑內(nèi)的網(wǎng)頁拓?fù)鋱D的中心Layer0為目標(biāo)網(wǎng)頁,將網(wǎng)頁依據(jù)指向目標(biāo)網(wǎng)頁的物理跳數(shù)進(jìn)行層次劃分,從外層網(wǎng)頁指向內(nèi)層網(wǎng)頁的鏈接稱為反向鏈接。
4.1.2 網(wǎng)站粒度的分析算法
網(wǎng)站粒度的資源發(fā)現(xiàn)和管理策略也比網(wǎng)頁粒度的更簡單有效。網(wǎng)站粒度的爬蟲抓取的關(guān)鍵之處在于站點(diǎn)的劃分和站點(diǎn)等級(SiteRank)的計(jì)算。SiteRank的計(jì)算方法與PageRank類似,但是需要對網(wǎng)站之間的鏈接作一定程度抽象,并在一定的模型下計(jì)算鏈接的權(quán)重。
網(wǎng)站劃分情況分為按域名劃分和按IP地址劃分兩種。文獻(xiàn)[18]討論了在分布式情況下,通過對同一個(gè)域名下不同主機(jī)、服務(wù)器的IP地址進(jìn)行站點(diǎn)劃分,構(gòu)造站點(diǎn)圖,利用類似PageRank的方法評價(jià)SiteRank。同時(shí),根據(jù)不同文件在各個(gè)站點(diǎn)上的分布情況,構(gòu)造文檔圖,結(jié)合SiteRank分布式計(jì)算得到DocRank。文獻(xiàn)[18]證明,利用分布式的SiteRank計(jì)算,不僅大大降低了單機(jī)站點(diǎn)的算法代價(jià),而且克服了單獨(dú)站點(diǎn)對整個(gè)網(wǎng)絡(luò)覆蓋率有限的缺點(diǎn)。附帶的一個(gè)優(yōu)點(diǎn)是,常見PageRank 造假難以對SiteRank進(jìn)行欺騙。
4.1.3 網(wǎng)頁塊粒度的分析算法
在一個(gè)頁面中,往往含有多個(gè)指向其他頁面的鏈接,這些鏈接中只有一部分是指向主題相關(guān)網(wǎng)頁的,或根據(jù)網(wǎng)頁的鏈接錨文本表明其具有較高重要性。但是,在PageRank和HITS算法中,沒有對這些鏈接作區(qū)分,因此常常給網(wǎng)頁分析帶來廣告等噪聲鏈接的干擾。在網(wǎng)頁塊級別(Blocklevel)進(jìn)行鏈接分析的算法的基本思想是通過VIPS網(wǎng)頁分割算法將網(wǎng)頁分為不同的網(wǎng)頁塊(page block),然后對這些網(wǎng)頁塊建立pagetoblock和blocktopage的鏈接矩陣,分別記為Z和X。于是,在pagetopage圖上的網(wǎng)頁塊級別的PageRank為Wp=X×Z;在blocktoblock圖上的BlockRank為Wb=Z×X。已經(jīng)有人實(shí)現(xiàn)了塊級別的PageRank和HITS算法,并通過實(shí)驗(yàn)證明,效率和準(zhǔn)確率都比傳統(tǒng)的對應(yīng)算法要好。
4.2 基于網(wǎng)頁內(nèi)容的網(wǎng)頁分析算法
基于網(wǎng)頁內(nèi)容的分析算法指的是利用網(wǎng)頁內(nèi)容(文本、數(shù)據(jù)等資源)特征進(jìn)行的網(wǎng)頁評價(jià)。網(wǎng)頁的內(nèi)容從原來的以超文本為主,發(fā)展到后來動態(tài)頁面(或稱為Hidden Web)數(shù)據(jù)為主,后者的數(shù)據(jù)量約為直接可見頁面數(shù)據(jù)(PIW,Publicly Indexable Web)的400~500倍。另一方面,多媒體數(shù)據(jù)、Web Service等各種網(wǎng)絡(luò)資源形式也日益豐富。因此,基于網(wǎng)頁內(nèi)容的分析算法也從原來的較為單純的文本檢索方法,發(fā)展為涵蓋網(wǎng)頁數(shù)據(jù)抽取、機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、語義理解等多種方法的綜合應(yīng)用。本節(jié)根據(jù)網(wǎng)頁數(shù)據(jù)形式的不同,將基于網(wǎng)頁內(nèi)容的分析算法,歸納以下三類:第一種針對以文本和超鏈接為主的無結(jié)構(gòu)或結(jié)構(gòu)很簡單的網(wǎng)頁;第二種針對從結(jié)構(gòu)化的數(shù)據(jù)源(如RDBMS)動態(tài)生成的頁面,其數(shù)據(jù)不能直接批量訪問;第三種針對的數(shù)據(jù)界于第一和第二類數(shù)據(jù)之間,具有較好的結(jié)構(gòu),顯示遵循一定模式或風(fēng)格,且可以直接訪問。
- 2 回答
- 0 關(guān)注
- 858 瀏覽
添加回答
舉報(bào)