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