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