搜索引擎蜘蛛的爬取策略簡單分析

在搜索引擎蜘蛛系統(tǒng)中,待爬取URL隊列是很關(guān)鍵的部分,需要蜘蛛爬取的網(wǎng)頁URL在其中順序排列,形成一個隊列結(jié)構(gòu),調(diào)度程序每次從隊列頭取出某個URL,發(fā)送給網(wǎng)頁下載器頁面內(nèi)容,每個新下載的頁面包含的URL會追加到待爬取URL隊列的末尾,如此形成循環(huán),整個爬蟲系統(tǒng)可以說是由這個隊列驅(qū)動運轉(zhuǎn)的。同樣我們的網(wǎng)站每天都要經(jīng)過這樣一個隊列,讓搜索引擎進(jìn)行爬取的。
那么待爬取URL隊列中的頁面URL 的排列順序是如何來確定的呢?上面我們說了將新下載頁面中的包含的鏈接追加到隊列尾部,這固然是一種確定隊列URL順序的方法,但并非唯一的手段,事實上,還可以采納很多其他技術(shù)來實現(xiàn),將隊列中待爬取的URL進(jìn)行排序。那么究竟搜索引擎蜘蛛是按照什么樣的策略進(jìn)行的爬取呢?以下我們來進(jìn)行更深入的分析吧。
第一、寬度優(yōu)化遍歷策略
寬度優(yōu)化遍歷是一種非常簡單直觀且歷史很悠久的遍歷方法,在搜索引擎爬蟲一出現(xiàn)就開始采用了。新提出的抓取策略往往會將這種方法作為比較基準(zhǔn),但應(yīng)該注意到的是,這種策略也是一種相當(dāng)強悍的方法,很多新方法實際效果不見昨比寬度優(yōu)化遍歷策略好,所以至今這種方法也是很多實際爬蟲系統(tǒng)優(yōu)先采用的爬取策略。網(wǎng)頁爬取順序基本是按照網(wǎng)頁的重要性排序的。之所以如此,有研究人員認(rèn)為,如果某個網(wǎng)頁包含很多入鏈,那么更有可能被寬度優(yōu)化遍歷策略早早爬到,而入鏈這個數(shù)從側(cè)面體現(xiàn)了網(wǎng)頁的重要性,即實際上寬度優(yōu)化遍歷策略隱含了一些網(wǎng)頁優(yōu)化級假設(shè)。
第二、非完全pagerank策略
PageRank是一種著名的鏈接分析算法,可以用來衡量網(wǎng)頁的重要性。很自然地,可以想到用PageRank的思想來對URL優(yōu)化級進(jìn)行排序。但是這里有個問題,PageRank是個全局性算法,也就是說當(dāng)所有網(wǎng)頁下載完成后,其計算結(jié)果才是可靠的,而爬蟲的目的就是去下載網(wǎng)頁,在運行過程中只能看到一部分頁面,所以在爬取階段的網(wǎng)頁是無法獲得可靠的PageRank得分的。對于已經(jīng)下載的網(wǎng)頁,加上待爬取的URL隊列中的一URL一起,形成網(wǎng)頁集合,在此集合內(nèi)進(jìn)行PageRank計算,計算完成之后,將待爬取URL隊列里的網(wǎng)頁按照按照PageRank得分由高低排序,形成的序列就是爬蟲接下來應(yīng)該依次爬取的URL列表。這也是為何稱之為“非完全PageRank”的原因,。
第三、OPIC策略( Online Page Importance Computation)
OPIC的字面含義是“在線頁面重要性計算”,可以將其看做是一種改進(jìn)的PageRank算法。在算法開始之前,每個互聯(lián)網(wǎng)頁面都給予相同的現(xiàn)金,每當(dāng)下載了某個頁面P后,P就將自己擁有的現(xiàn)金平均分配給頁面中包含的鏈接頁面,氫自己的現(xiàn)金清空。而對于待爬取URL隊列中的網(wǎng)頁,則根據(jù)其手頭擁有的現(xiàn)金金額多少排序,優(yōu)先下載現(xiàn)金最充裕的網(wǎng)頁,OPIC從大的框架上與PageRank思路基本一致,區(qū)別在于:PageRank每次需要迭代計算,而OPIC策略不需要迭代過程。所以計算速度遠(yuǎn)遠(yuǎn)快與PageRank,適合實時 計算使用。同時,PageRank,在計算時,存在向無鏈接關(guān)系網(wǎng)頁的遠(yuǎn)程跳轉(zhuǎn)過程,而OPIC沒有這一計算因子。實驗結(jié)果表明,OPIC是較好的重要性衡量策略,效果略優(yōu)于寬度優(yōu)化遍歷策略。
第四、大站優(yōu)化策略
大部優(yōu)化策略思路很直接:以網(wǎng)站為單位來選題網(wǎng)頁重要性,對于待爬取URL隊列中的網(wǎng)頁根據(jù)所屬網(wǎng)站歸類,如果哪個網(wǎng)站等待下載的頁面最多,則優(yōu)化先下載這些鏈接,其本質(zhì)思想傾向于優(yōu)先下載大型網(wǎng)站。因為大型網(wǎng)站往往包含更多的頁面。鑒于大型網(wǎng)站往往是著名企業(yè)的內(nèi)容,其網(wǎng)頁質(zhì)量一般較高,所以這個思路雖然簡單,但是有一定依據(jù)。實驗表明這個算法效果也要略優(yōu)先于寬度優(yōu)先遍歷策略。
第五、網(wǎng)頁更新策略
互聯(lián)網(wǎng)的動態(tài)是其顯著特征,隨時都有新出現(xiàn)的頁面,頁面的內(nèi)容被更改或者本來存在的頁面刪除。對于爬蟲來說,并非將網(wǎng)頁抓取到本地就算完成任務(wù),也要體現(xiàn)出互聯(lián)網(wǎng)這種動態(tài)性。本地下載的網(wǎng)頁可被看做是互聯(lián)網(wǎng)頁的鏡像,爬蟲要盡可能保證其一致性??梢约僭O(shè)一種情況:某 個網(wǎng)頁已被刪除或者內(nèi)容做出重大變動,而搜索引擎對此惘然無知,仍然按其舊有內(nèi)容排序,將其作為搜索結(jié)果提供給用記,其用戶體驗度之糟糕不言而喻。所以對于已經(jīng)爬取的網(wǎng)頁,爬蟲還要負(fù)責(zé)保持其內(nèi)容和互聯(lián)網(wǎng)頁面內(nèi)容的同步,這取決于爬蟲所彩用的網(wǎng)頁更新策略。網(wǎng)頁更新策略的任務(wù)是要決定何時重新爬取之前已經(jīng)下載過和網(wǎng)頁,以盡可能使得本地下載網(wǎng)頁和互聯(lián)網(wǎng)原始頁面內(nèi)容保持一致。常用的網(wǎng)頁更新策略有三種:歷史參考策略,用戶體驗度策略和聚類抽樣策略。
(1)什么是歷史參考策略?
歷史參考策略是最直觀的一種更新策略,它建立于如下假設(shè)之上:過去頻繁更新的網(wǎng)頁,那么將來也會頻繁更新,所以為了預(yù)估某個網(wǎng)頁何時進(jìn)行更新,可以通過參考其歷史更新情況來做出決定。
從這一點可以看出,我們網(wǎng)站的更新一定要有規(guī)律的進(jìn)行,這樣才能讓搜索引擎蜘蛛更好的來關(guān)注你的網(wǎng)站,把握你的網(wǎng)站,很多人在更新網(wǎng)站的時候,不知道為什么要做規(guī)律性的更新,這就是真正存在的原因。
(2)什么是用戶體驗度策略?
這個很明顯,大家都知道。一般來說,搜索引擎用戶提交查詢結(jié)果后,相關(guān)的搜索結(jié)果可能成千上萬,而用戶沒有耐心去查看排在后面的搜索結(jié)果,往往只盾前三頁搜索內(nèi)容,用戶體驗策略就是利用搜索引擎用戶的這個特點來設(shè)計更新策略的。
(3)聚類抽樣策略
上面介紹的兩種網(wǎng)頁更新策略嚴(yán)重依賴網(wǎng)頁的歷史更新信息,因為這是能夠進(jìn)行后續(xù)計算的基礎(chǔ)。但在現(xiàn)實中為每個網(wǎng)頁保存歷史信息,搜索系統(tǒng)會增加 額外的負(fù)擔(dān)。從另外一個角度考慮,如果是首次爬取的網(wǎng)頁,因為沒有歷史信息,所以也就無法按照這兩種思路去預(yù)估其更新周期,聚類抽樣,策略即是為了解決上述缺點而提出的。網(wǎng)頁一般具有一些屬性,根據(jù)這些屬性可以預(yù)測其更新周期,具有相信屬性的網(wǎng)頁,其更新周期也是類似的。
通過以上對搜索引擎蜘蛛的爬取過程以及爬取策略進(jìn)行了簡單的了解之后,你是否應(yīng)該有些考慮了?試著對自己的網(wǎng)站進(jìn)行改變了?以上的一些原因說明了搜索引擎的更新是有規(guī)律以及有章法進(jìn)行的,要想更能適應(yīng)搜索引擎的更新原則和蜘蛛爬取原則,我們就應(yīng)該從更基礎(chǔ)的入手去進(jìn)行全面的分析和總結(jié)。
相關(guān)文章
Google蜘蛛爬蟲可以運行網(wǎng)頁中的JS腳本和CSS樣式
在我的既有觀念中,搜索引擎的網(wǎng)頁爬蟲/蜘蛛/機器人(Crawler/Spider/Robot)只抓取頁面的 HTML 代碼,對于內(nèi)部或外部的 JS 與 CSS 代碼是一律無視的。2010-01-01- 百度蜘蛛日志抓取解讀 教你如何提高百度收錄:百度的收錄是關(guān)心的重中之重,了解百度蜘蛛的爬行規(guī)律從而更好的改善收錄情況也是必須要掌握的。2010-06-29
- 如何讓搜索引擎蜘蛛喜歡上你的網(wǎng)站,以下幾點大家都注意下2012-03-23
引導(dǎo)網(wǎng)絡(luò)蜘蛛爬行自己的網(wǎng)站的方法介紹
做網(wǎng)站的都希望被搜索引擎所收錄.就是希望網(wǎng)絡(luò)蜘蛛能爬到自己的網(wǎng)站里收錄信息2012-07-05- 網(wǎng)站被百度的蜘蛛抓取時返回304狀態(tài)碼是什么意思呢2012-08-29
網(wǎng)站優(yōu)化必看 蜘蛛陷阱 不利于蜘蛛爬取的網(wǎng)頁
網(wǎng)站有哪些地方是不利于蜘蛛爬取的呢?下面腳本之家分享了一些蜘蛛爬取陷阱,讓蜘蛛爬去不到頁面的一些因素,需要的朋友可以參考下2014-10-13SEO優(yōu)化 蜘蛛的爬行規(guī)則以及讓蜘蛛爬行的快速辦法
想要提高網(wǎng)站的排名首先要了解蜘蛛的爬行規(guī)則,下面我們來看看解蜘蛛最喜歡的是什么?當(dāng)蜘蛛爬行一個網(wǎng)站的時候,它需要爬行的信息首先就是站內(nèi)的結(jié)構(gòu),查看站內(nèi)結(jié)構(gòu)是否是2014-10-14- 作為一名編輯乃至站長,在關(guān)注網(wǎng)站在搜索引擎排名的時候,最重要的就是蜘蛛(spider)。搜索引擎蜘蛛是一個自動抓取互聯(lián)網(wǎng)上網(wǎng)頁內(nèi)容的程序,每個搜索引擎都有自己的蜘蛛,那2016-05-27