在搜索引擎蜘蛛系統中,待爬取URL隊列是很關(guān)鍵的部分,需要蜘蛛爬取的網(wǎng)頁(yè)URL在其中順序排列,形成一個(gè)隊列結構,調度程序每次從隊列頭取出某個(gè)URL,發(fā)送給網(wǎng)頁(yè)下載器頁(yè)面內容,每個(gè)新下載的頁(yè)面包含的URL會(huì )追加到待爬取URL隊列的末尾,如此形成循環(huán),整個(gè)爬蟲(chóng)系統可以說(shuō)是由這個(gè)隊列驅動(dòng)運轉的。
1、大站優(yōu)化策略
大部?jì)?yōu)化策略思路很直接:以網(wǎng)站為單位來(lái)選題網(wǎng)頁(yè)重要性,對于待爬取URL隊列中的網(wǎng)頁(yè)根據所屬網(wǎng)站歸類(lèi),如果哪個(gè)網(wǎng)站等待下載的頁(yè)面最多,則優(yōu)化先下載這些鏈接,其本質(zhì)思想傾向于優(yōu)先下載大型網(wǎng)站。因為大型網(wǎng)站往往包含更多的頁(yè)面。鑒于大型網(wǎng)站往往是著(zhù)名企業(yè)的內容,其網(wǎng)頁(yè)質(zhì)量一般較高,所以這個(gè)思路雖然簡(jiǎn)單,但是有一定依據。實(shí)驗表明這個(gè)算法效果也要略?xún)?yōu)先于寬度優(yōu)先遍歷策略。?搜索引擎蜘蛛每天是怎么樣去爬取我們的網(wǎng)的呢?針對這些你有多少的了解?那搜索引擎蜘蛛的爬取過(guò)程又是怎么樣的呢?在搜索引擎蜘蛛系統中,待爬取URL隊列是很關(guān)鍵的部分,需要蜘蛛爬取的網(wǎng)頁(yè)URL在其中順序排列,形成一個(gè)隊列結構,調度程序每次從隊列頭取出某個(gè)URL,發(fā)送給網(wǎng)頁(yè)下載器頁(yè)面內容,每個(gè)新下載的頁(yè)面包含的URL會(huì )追加到待爬取URL隊列的末尾,如此形成循環(huán),整個(gè)爬蟲(chóng)系統可以說(shuō)是由這個(gè)隊列驅動(dòng)運轉的。同樣我們的網(wǎng)站每天都要經(jīng)過(guò)這樣一個(gè)隊列,讓搜索引擎進(jìn)行爬取的。?那么待爬取URL隊列中的頁(yè)面URL的排列順序是如何來(lái)確定的呢?上面我們說(shuō)了將新下載頁(yè)面中的包含的鏈接追加到隊列尾部,這固然是一種確定隊列URL順序的方法,但并非唯一的手段,事實(shí)上,還可以采納很多其他技術(shù)來(lái)實(shí)現,將隊列中待爬取的URL進(jìn)行排序。那么究竟搜索引擎蜘蛛是按照什么樣的策略進(jìn)行的爬取呢?以下我們來(lái)進(jìn)行更深入的分析吧。?2、寬度優(yōu)化遍歷策略
寬度優(yōu)化遍歷是一種非常簡(jiǎn)單直觀(guān)且歷史很悠久的遍歷方法,在搜索引擎爬蟲(chóng)一出現就開(kāi)始采用了。新提出的抓取策略往往會(huì )將這種方法作為比較基準,但應該注意到的是,這種策略也是一種相當強悍的方法,很多新方法實(shí)際效果不見(jiàn)昨比寬度優(yōu)化遍歷策略好,所以至今這種方法也是很多實(shí)際爬蟲(chóng)系統優(yōu)先采用的爬取策略。網(wǎng)頁(yè)爬取順序基本是按照網(wǎng)頁(yè)的重要性排序的。之所以如此,有研究人員認為,如果某個(gè)網(wǎng)頁(yè)包含很多入鏈,那么更有可能被寬度優(yōu)化遍歷策略早早爬到,而入鏈這個(gè)數從側面體現了網(wǎng)頁(yè)的重要性,即實(shí)際上寬度優(yōu)化遍歷策略隱含了一些網(wǎng)頁(yè)優(yōu)化級假設。?3、OPIC策略
OPIC的字面含義是“在線(xiàn)頁(yè)面重要性計算”,可以將其看做是一種改進(jìn)的PageRank算法。在算法開(kāi)始之前,每個(gè)互聯(lián)網(wǎng)頁(yè)面都給予相同的現金,每當下載了某個(gè)頁(yè)面P后,P就將自己擁有的現金平均分配給頁(yè)面中包含的鏈接頁(yè)面,氫自己的現金清空。而對于待爬取URL隊列中的網(wǎng)頁(yè),則根據其手頭擁有的現金金額多少排序,優(yōu)先下載現金最充裕的網(wǎng)頁(yè),OPIC從大的框架上與PageRank思路基本一致,區別在于:PageRank每次需要迭代計算,而OPIC策略不需要迭代過(guò)程。所以計算速度遠遠快與PageRank,適合實(shí)時(shí)計算使用。同時(shí),PageRank,在計算時(shí),存在向無(wú)鏈接關(guān)系網(wǎng)頁(yè)的遠程跳轉過(guò)程,而OPIC沒(méi)有這一計算因子。實(shí)驗結果表明,OPIC是較好的重要性衡量策略,效果略?xún)?yōu)于寬度優(yōu)化遍歷策略。?4、非完全pagerank策略
PageRank是一種著(zhù)名的鏈接分析算法,可以用來(lái)衡量網(wǎng)頁(yè)的重要性。很自然地,可以想到用PageRank的思想來(lái)對URL優(yōu)化級進(jìn)行排序。但是這里有個(gè)問(wèn)題,PageRank是個(gè)全局性算法,也就是說(shuō)當所有網(wǎng)頁(yè)下載完成后,其計算結果才是可靠的,而爬蟲(chóng)的目的就是去下載網(wǎng)頁(yè),在運行過(guò)程中只能看到一部分頁(yè)面,所以在爬取階段的網(wǎng)頁(yè)是無(wú)法獲得可靠的PageRank得分的。對于已經(jīng)下載的網(wǎng)頁(yè),加上待爬取的URL隊列中的一URL一起,形成網(wǎng)頁(yè)集合,在此集合內進(jìn)行PageRank計算,計算完成之后,將待爬取URL隊列里的網(wǎng)頁(yè)按照按照PageRank得分由高低排序,形成的序列就是爬蟲(chóng)接下來(lái)應該依次爬取的URL列表。這也是為何稱(chēng)之為“非完全PageRank”的原因。