探尋搜索引擎蜘蛛技術?

搜索引擎技術可以從海量的網絡信息中獲得我們想要的信息,隨著網絡信息資源的急劇增長其作用越來越顯著。本文介紹了搜索引擎技術中的網路蜘蛛,分析了其對文件的處理方法,研究了其搜索與更新策略。
關鍵詞:搜索引擎;網路蜘蛛;更新策略

方法/步驟

一 網絡蜘蛛工作原理
  網絡蜘蛛,即搜索引擎機器人程序。將整個互聯網想象成一張很大的蜘蛛網,而搜索引擎機器人程序通過鏈接來抓取信息的過程就像是蜘蛛在這張網上爬來爬去一樣。網絡蜘蛛是通過鏈接地址來尋找網頁的。它由一個啟始鏈接開始抓取網頁內容,同時也採集網頁上的鏈接,並將這些鏈接作為它下一步抓取的鏈接地址,如此循環,直到達到某個停止條件後才會停止。停止條件的設定通常是以時間或是數量為依據,有時也會以鏈接的層數來限制網絡蜘蛛的運行。

二 網路蜘蛛與網站的交互問題
  網絡蜘蛛訪問一個網站,通常會去尋找一個特殊的文本文件Robots.txt,這個文件如果存在的話通常會放在網站的根目錄下。它是專門用來同網絡蜘蛛交互用的專用文件。它會將網站管理者的意思傳遞給訪問它的網絡蜘蛛,告訴網站同意或是禁止某些或是所有蜘蛛訪問網站的某個特定的網頁或者目錄。它的結構和語法都比較簡單,一般網絡蜘蛛都可以很容易的理解網站的意思。正規的搜索引擎通過讀取這個文件可以很方便的理解網站的意思並按照網站管理者的意思來進行友好的訪問。但是這個僅僅只是網絡的一個約定協議而以,並沒有對其制定相應的強迫手段,更沒有提出相應的懲罰,所以這個約定對於遵守者是有效的,但對於那些不懂生規矩的蜘蛛是一點作用都沒有。

在網頁中的Meta字段同樣也可以放入和上面文件相同效用的內容,它可以告訴網絡蜘蛛這個網頁對於網站管理者來說,是需要被收錄還是僅僅被瀏覽或是根本就不允許蜘蛛訪問。這個字段通常會放在文檔的頭部,通過讀取這個字段,蜘蛛可以在沒有讀取到全部文檔的情況下就瞭解文檔的相關信息,可以避免將無效的網頁取下來後又將其廢棄而造成無謂的浪費。同樣這個規則也是沒有特殊限制的,遵守程度完全靠網絡蜘蛛的自覺性和網站的設計方式來決定。為了讓網站被搜索引擎搜索到,尤其是那些網站所有者希望網絡蜘蛛採集的網頁,網站的設計者通常會在網站中放入一個叫做sitmap.htm的網頁,並將它作為網站的入口文件。

三 網絡蜘蛛對於文件的處理
  (一)二進制文件處理
  網絡上除了有大量的HTML文件和XML文件外,也有大量的二進制文件。為了使網頁的內容更加豐富,圖片和多媒體文件被網頁大量的引用。它們在網頁上也是以超鏈接的形式出現的,因而在鏈接提取的階段它們也是會被放在待訪問隊列中。對於二進制文件通過文件的內容來完成文件的索引是不現實的,現在的技術還沒有達到可以通過二進制文件來理解文件內容的地步。因而對於這些文件的處理一般是採用單獨處理的方式,其內容的理解完全需要依靠二進制文件的錨點描述來完成。錨點描述通常代表了文件的標題或是基本內容。錨點信息一般是由引用網頁來提供,而不是放在二進制文件本身。二進制文件由於種類的差別問題,也需要分別來進行處理。

(二)腳本文件的處理
  這裡說的腳本文件一般指的是包含在網頁中的客戶端腳本,它會在網頁下載到客戶端的時候才會運行,通常會在客戶端上完成一些簡單的交互工作。腳本文件一般會在網頁中負責網頁的顯示工作,但由於ajax技術的廣泛使用,它也會負責與服務器端的交互工作。由於腳本語言的多樣性和複雜性,對它的分析處理無異於製作一個簡單的網頁解析程序。正是因為處理腳本文件相當困難,許多小規模的搜索引擎往往會直接省略對它的處理。但是由於現在網站設計者對於無刷新頁面要求的提高和對ajax技術的大量使用,如果忽略了對它的處理將會是一項巨大的損失。

(三)不同文件類型處理
  對於網頁內容的提取分析一直是網絡蜘蛛的重要技術環節。對於網上不同文件類型文件的處理,網絡蜘蛛通常是採用插件的方式來處理。它會有一個比較智能化的插件管理程序負責管理不同的插件,對於需要處理的不同類型的文件,它會調用不同的插件來處理。之所以是採用插件的形式,主要是出於擴展性方面的考慮。互聯網上有許多不同類型的文件,不同的文件需要完全不同的處理方式,而且這個網絡是不斷變化的,隨時會有新文件類型出現的可能。而要完成對新類型的處理,最簡單的方法就是給新類型編寫新的插件,然後將插件直接交由管理程序來管理。同時這個插件的編寫最好是由新文件格式的製造者自行完成,通常只有製造者才最瞭解新格式定義的意義。

四 網絡蜘蛛的策略分析
  (一)搜索策略
  網絡蜘蛛的搜索策略指的是如何根據抓取下來的URL地址來選擇訪問地址先後的一種標準或規則。它將指導蜘蛛程序下一步的執行方向。搜索策略一般有深度優先的搜索策略和廣度優先的搜索策略兩種。

廣度優先的搜索是最簡便的圖搜索算法,在數據結構上通常會以先進先出的隊列結構為主,管理和實現起來都相當的簡單,一般被認為是盲目的搜索。它是一種以搜索更多的網頁為優先的一種貪婪的搜索策略。它會先讀取一個文檔,保存下文檔上的所有鏈接,然後讀取所有這些鏈接文檔,並依次進行下去。這樣做的好處是避免了在極短的時間內連續訪問這臺服務器上的文檔的可能性,因為一個文檔上的鏈接通常會有幾個跳到別的服務器上,這樣做十分有利於避免影響別的服務器工作。這種方法也通常被應用於聚焦爬蟲中。其基本思想是認為與初始uRL在一定鏈接距離內的網頁具有主題相關性的概率很大。同時它還可以使盡可能多的服務器有文檔被索引服務器收集。它的缺點是很難深入到文檔裡面,而且隨著抓取網頁的增多,大量的無關網頁將被下載並過濾,算法的效率變得十分的低下。

深度優先的搜索策略是以先進後出的棧方式來處理URL地址的。網絡蜘蛛程序分析一個文檔,並取出它的第一個鏈接所指的文檔繼續分析,然後如此繼續下去。它的優點就是能夠較好的深入和發掘站點的結構,而且這種算法十分穩定,效率方面也是有所保障的。它對於搜索部分小的網站是有好處的。它的缺點是十分明顯的,不斷的短時間的訪問同一臺服務器的問題將非常的嚴重,而且它還容易陷入無限循環的文檔樹,這種算法處理這個問題的能力相當的有限。

相關問題答案