- 相關(guān)推薦
搜索引擎中的網(wǎng)絡(luò)蜘蛛技術(shù)探析
摘要:搜索引擎技術(shù)可以從海量的網(wǎng)絡(luò)信息中獲得我們想要的信息,隨著網(wǎng)絡(luò)信息資源的急劇增長(zhǎng)其作用越來(lái)越顯著。本文介紹了搜索引擎技術(shù)中的網(wǎng)路蜘蛛,分析了其對(duì)文件的處理方法,研究了其搜索與更新策略。
關(guān)鍵詞:搜索引擎;網(wǎng)路蜘蛛;更新策略
一 網(wǎng)絡(luò)蜘蛛工作原理
網(wǎng)絡(luò)蜘蛛,即搜索引擎機(jī)器人程序。將整個(gè)互聯(lián)網(wǎng)想象成一張很大的蜘蛛網(wǎng),而搜索引擎機(jī)器人程序通過(guò)鏈接來(lái)抓取信息的過(guò)程就像是蜘蛛在這張網(wǎng)上爬來(lái)爬去一樣。網(wǎng)絡(luò)蜘蛛是通過(guò)鏈接地址來(lái)尋找網(wǎng)頁(yè)的。它由一個(gè)啟始鏈接開(kāi)始抓取網(wǎng)頁(yè)內(nèi)容,同時(shí)也采集網(wǎng)頁(yè)上的鏈接,并將這些鏈接作為它下一步抓取的鏈接地址,如此循環(huán),直到達(dá)到某個(gè)停止條件后才會(huì)停止。停止條件的設(shè)定通常是以時(shí)間或是數(shù)量為依據(jù),有時(shí)也會(huì)以鏈接的層數(shù)來(lái)限制網(wǎng)絡(luò)蜘蛛的運(yùn)行。
二 網(wǎng)路蜘蛛與網(wǎng)站的交互問(wèn)題
網(wǎng)絡(luò)蜘蛛訪問(wèn)一個(gè)網(wǎng)站,通常會(huì)去尋找一個(gè)特殊的文本文件Robots.txt,這個(gè)文件如果存在的話通常會(huì)放在網(wǎng)站的根目錄下。它是專門用來(lái)同網(wǎng)絡(luò)蜘蛛交互用的專用文件。它會(huì)將網(wǎng)站管理者的意思傳遞給訪問(wèn)它的網(wǎng)絡(luò)蜘蛛,告訴網(wǎng)站同意或是禁止某些或是所有蜘蛛訪問(wèn)網(wǎng)站的某個(gè)特定的網(wǎng)頁(yè)或者目錄。它的結(jié)構(gòu)和語(yǔ)法都比較簡(jiǎn)單,一般網(wǎng)絡(luò)蜘蛛都可以很容易的理解網(wǎng)站的意思。正規(guī)的搜索引擎通過(guò)讀取這個(gè)文件可以很方便的理解網(wǎng)站的意思并按照網(wǎng)站管理者的意思來(lái)進(jìn)行友好的訪問(wèn)。但是這個(gè)僅僅只是網(wǎng)絡(luò)的一個(gè)約定協(xié)議而以,并沒(méi)有對(duì)其制定相應(yīng)的強(qiáng)迫手段,更沒(méi)有提出相應(yīng)的懲罰,所以這個(gè)約定對(duì)于遵守者是有效的,但對(duì)于那些不懂生規(guī)矩的蜘蛛是一點(diǎn)作用都沒(méi)有。
在網(wǎng)頁(yè)中的Meta字段同樣也可以放入和上面文件相同效用的內(nèi)容,它可以告訴網(wǎng)絡(luò)蜘蛛這個(gè)網(wǎng)頁(yè)對(duì)于網(wǎng)站管理者來(lái)說(shuō),是需要被收錄還是僅僅被瀏覽或是根本就不允許蜘蛛訪問(wèn)。這個(gè)字段通常會(huì)放在文檔的頭部,通過(guò)讀取這個(gè)字段,蜘蛛可以在沒(méi)有讀取到全部文檔的情況下就了解文檔的相關(guān)信息,可以避免將無(wú)效的網(wǎng)頁(yè)取下來(lái)后又將其廢棄而造成無(wú)謂的浪費(fèi)。同樣這個(gè)規(guī)則也是沒(méi)有特殊限制的,遵守程度完全靠網(wǎng)絡(luò)蜘蛛的自覺(jué)性和網(wǎng)站的設(shè)計(jì)方式來(lái)決定。為了讓網(wǎng)站被搜索引擎搜索到,尤其是那些網(wǎng)站所有者希望網(wǎng)絡(luò)蜘蛛采集的網(wǎng)頁(yè),網(wǎng)站的設(shè)計(jì)者通常會(huì)在網(wǎng)站中放入一個(gè)叫做sitmap.htm的網(wǎng)頁(yè),并將它作為網(wǎng)站的入口文件。
三 網(wǎng)絡(luò)蜘蛛對(duì)于文件的處理
(一)二進(jìn)制文件處理
網(wǎng)絡(luò)上除了有大量的HTML文件和XML文件外,也有大量的二進(jìn)制文件。為了使網(wǎng)頁(yè)的內(nèi)容更加豐富,圖片和多媒體文件被網(wǎng)頁(yè)大量的引用。它們?cè)诰W(wǎng)頁(yè)上也是以超鏈接的形式出現(xiàn)的,因而在鏈接提取的階段它們也是會(huì)被放在待訪問(wèn)隊(duì)列中。對(duì)于二進(jìn)制文件通過(guò)文件的內(nèi)容來(lái)完成文件的索引是不現(xiàn)實(shí)的,現(xiàn)在的技術(shù)還沒(méi)有達(dá)到可以通過(guò)二進(jìn)制文件來(lái)理解文件內(nèi)容的地步。因而對(duì)于這些文件的處理一般是采用單獨(dú)處理的方式,其內(nèi)容的理解完全需要依靠二進(jìn)制文件的錨點(diǎn)描述來(lái)完成。錨點(diǎn)描述通常代表了文件的標(biāo)題或是基本內(nèi)容。錨點(diǎn)信息一般是由引用網(wǎng)頁(yè)來(lái)提供,而不是放在二進(jìn)制文件本身。二進(jìn)制文件由于種類的差別問(wèn)題,也需要分別來(lái)進(jìn)行處理。
(二)腳本文件的處理
這里說(shuō)的腳本文件一般指的是包含在網(wǎng)頁(yè)中的客戶端腳本,它會(huì)在網(wǎng)頁(yè)下載到客戶端的時(shí)候才會(huì)運(yùn)行,通常會(huì)在客戶端上完成一些簡(jiǎn)單的交互工作。腳本文件一般會(huì)在網(wǎng)頁(yè)中負(fù)責(zé)網(wǎng)頁(yè)的顯示工作,但由于ajax技術(shù)的廣泛使用,它也會(huì)負(fù)責(zé)與服務(wù)器端的交互工作。由于腳本語(yǔ)言的多樣性和復(fù)雜性,對(duì)它的分析處理無(wú)異于制作一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)解析程序。正是因?yàn)樘幚砟_本文件相當(dāng)困難,許多小規(guī)模的搜索引擎往往會(huì)直接省略對(duì)它的處理。但是由于現(xiàn)在網(wǎng)站設(shè)計(jì)者對(duì)于無(wú)刷新頁(yè)面要求的提高和對(duì)ajax技術(shù)的大量使用,如果忽略了對(duì)它的處理將會(huì)是一項(xiàng)巨大的損失。
(三)不同文件類型處理
對(duì)于網(wǎng)頁(yè)內(nèi)容的提取分析一直是網(wǎng)絡(luò)蜘蛛的重要技術(shù)環(huán)節(jié)。對(duì)于網(wǎng)上不同文件類型文件的處理,網(wǎng)絡(luò)蜘蛛通常是采用插件的方式來(lái)處理。它會(huì)有一個(gè)比較智能化的插件管理程序負(fù)責(zé)管理不同的插件,對(duì)于需要處理的不同類型的文件,它會(huì)調(diào)用不同的插件來(lái)處理。之所以是采用插件的形式,主要是出于擴(kuò)展性方面的考慮;ヂ(lián)網(wǎng)上有許多不同類型的文件,不同的文件需要完全不同的處理方式,而且這個(gè)網(wǎng)絡(luò)是不斷變化的,隨時(shí)會(huì)有新文件類型出現(xiàn)的可能。而要完成對(duì)新類型的處理,最簡(jiǎn)單的方法就是給新類型編寫新的插件,然后將插件直接交由管理程序來(lái)管理。同時(shí)這個(gè)插件的編寫最好是由新文件格式的制造者自行完成,通常只有制造者才最了解新格式定義的意義。
四 網(wǎng)絡(luò)蜘蛛的策略分析
(一)搜索策略
網(wǎng)絡(luò)蜘蛛的搜索策略指的是如何根據(jù)抓取下來(lái)的URL地址來(lái)選擇訪問(wèn)地址先后的一種標(biāo)準(zhǔn)或規(guī)則。它將指導(dǎo)蜘蛛程序下一步的執(zhí)行方向。搜索策略一般有深度優(yōu)先的搜索策略和廣度優(yōu)先的搜索策略兩種。
廣度優(yōu)先的搜索是最簡(jiǎn)便的圖搜索算法,在數(shù)據(jù)結(jié)構(gòu)上通常會(huì)以先進(jìn)先出的隊(duì)列結(jié)構(gòu)為主,管理和實(shí)現(xiàn)起來(lái)都相當(dāng)?shù)暮?jiǎn)單,一般被認(rèn)為是盲目的搜索。它是一種以搜索更多的網(wǎng)頁(yè)為優(yōu)先的一種貪婪的搜索策略。它會(huì)先讀取一個(gè)文檔,保存下文檔上的所有鏈接,然后讀取所有這些鏈接文檔,并依次進(jìn)行下去。這樣做的好處是避免了在極短的時(shí)間內(nèi)連續(xù)訪問(wèn)這臺(tái)服務(wù)器上的文檔的可能性,因?yàn)橐粋(gè)文檔上的鏈接通常會(huì)有幾個(gè)跳到別的服務(wù)器上,這樣做十分有利于避免影響別的服務(wù)器工作。這種方法也通常被應(yīng)用于聚焦爬蟲中。其基本思想是認(rèn)為與初始uRL在一定鏈接距離內(nèi)的網(wǎng)頁(yè)具有主題相關(guān)性的概率很大。同時(shí)它還可以使盡可能多的服務(wù)器有文檔被索引服務(wù)器收集。它的缺點(diǎn)是很難深入到文檔里面,而且隨著抓取網(wǎng)頁(yè)的增多,大量的無(wú)關(guān)網(wǎng)頁(yè)將被下載并過(guò)濾,算法的效率變得十分的低下。
深度優(yōu)先的搜索策略是以先進(jìn)后出的棧方式來(lái)處理URL地址的。網(wǎng)絡(luò)蜘蛛程序分析一個(gè)文檔,并取出它的第一個(gè)鏈接所指的文檔繼續(xù)分析,然后如此繼續(xù)下去。它的優(yōu)點(diǎn)就是能夠較好的深入和發(fā)掘站點(diǎn)的結(jié)構(gòu),而且這種算法十分穩(wěn)定,效率方面也是有所保障的。它對(duì)于搜索部分小的網(wǎng)站是有好處的。它的缺點(diǎn)是十分明顯的,不斷的短時(shí)間的訪問(wèn)同一臺(tái)服務(wù)器的問(wèn)題將非常的嚴(yán)重,而且它還容易陷入無(wú)限循環(huán)的文檔樹(shù),這種算法處理這個(gè)問(wèn)題的能力相當(dāng)?shù)挠邢蕖?
將兩種算法結(jié)合起來(lái)也是一種不錯(cuò)的辦法,這兩種算法互有長(zhǎng)短,有些地方也可以形成互補(bǔ)。以一種算法為主,一種算法相輔的辦法可以達(dá)到取長(zhǎng)補(bǔ)短的效果。除了以上的算法之外,最好優(yōu)先算法也經(jīng)常被采用,它通過(guò)對(duì)采集的鏈接通過(guò)一些關(guān)于網(wǎng)頁(yè)質(zhì)量和效率的算法來(lái)排序,優(yōu)秀者將優(yōu)先被抓取。但是這個(gè)關(guān)于質(zhì)量和效率的算法則又有許多不同的版本,在這里就不作詳細(xì)的展開(kāi)了。除去這些常用的算法,還有一些不常被人采用的優(yōu)秀算法,如Hash算法,遺傳算法等。
(二)更新策略
索引中大量的網(wǎng)頁(yè)是很少變化的,對(duì)所有的網(wǎng)頁(yè)按照同一頻率統(tǒng)一更新是完全沒(méi)有必要的。因而以網(wǎng)頁(yè)變化的周期為依據(jù),只對(duì)那些經(jīng)常變化的網(wǎng)頁(yè)做更新操作也是一些小型的搜索引擎常采用的方法。但是只對(duì)部分網(wǎng)頁(yè)做更新可能會(huì)漏掉一些重要網(wǎng)頁(yè)的更新工作,所以網(wǎng)絡(luò)爬蟲也經(jīng)常采用個(gè)體更新的策略。它是以個(gè)別網(wǎng)頁(yè)的變化頻率來(lái)決定對(duì)網(wǎng)頁(yè)的更新頻率,這樣一來(lái)基本上每個(gè)網(wǎng)頁(yè)都會(huì)有一個(gè)獨(dú)立的更新頻率。雖然這樣做對(duì)于網(wǎng)頁(yè)更新基本做到了變化與更新同步,在邏輯上也最合乎實(shí)際情況,但是為每個(gè)網(wǎng)頁(yè)都維護(hù)不同的頻率,在不同的周期上對(duì)少數(shù)頁(yè)面做更新,更新的頻率加快了,每次更新的數(shù)量卻減少了,這對(duì)于系統(tǒng)來(lái)說(shuō)是極人的浪費(fèi)。為了解決這種情況,可以將這些頻率按照幾個(gè)等級(jí)分類,把更新快的和更新慢的分成幾個(gè)集合,然后給每個(gè)集合定一個(gè)甲均的更新的頻率,用這個(gè)頻率分別對(duì)不同的集合統(tǒng)一進(jìn)行更新可以平衡以上的矛盾獲得更好的效果。
【搜索引擎中的網(wǎng)絡(luò)蜘蛛技術(shù)探析】相關(guān)文章:
網(wǎng)絡(luò)直播技術(shù)前沿技術(shù)探析12-24
探析智能光網(wǎng)絡(luò)技術(shù)及發(fā)展03-18
探析校園網(wǎng)絡(luò)安全技術(shù)03-18
探析多媒體網(wǎng)絡(luò)技術(shù)在英語(yǔ)互動(dòng)式教學(xué)中的應(yīng)用03-18
探析公路施工中網(wǎng)絡(luò)技術(shù)的應(yīng)用03-20
探析數(shù)據(jù)融合技術(shù)及其在林業(yè)中的應(yīng)用03-18
探析計(jì)算機(jī)網(wǎng)絡(luò)的防御技術(shù)03-26
計(jì)算機(jī)網(wǎng)絡(luò)管理技術(shù)探析03-15
搜索引擎技術(shù)及趨勢(shì)11-21