搜索引擎蜘蛛產生的背景
隨著網絡的迅速發展,萬維網成為大量信息的載體,如何有效地提取并利用這些信息成為一個巨大的挑戰。搜索引擎(SearchEngine),例如傳統的通用搜索引擎AltaVista,Yahoo!和Google等,作為一個輔助人們檢索信息的工具成為用戶訪問萬維網的入口和指南。但是,這些通用性搜索引擎也存在著一定的局限性,如:
(1)不同領域、不同背景的用戶往往具有不同的檢索目的和需求,通用搜索引擎所返回的結果包含大量用戶不關心的網頁。
(2)通用搜索引擎的目標是盡可能大的網絡覆蓋率,有限的搜索引擎服務器資源與無限的網絡數據資源之間的矛盾將進一步加深。
(3)萬維網數據形式的豐富和網絡技術的不斷發展,圖片、數據庫、音頻、視頻多媒體等不同數據大量出現,通用搜索引擎往往對這些信息含量密集且具有一定結構的數據無能為力,不能很好地發現和獲取。
(4)通用搜索引擎大多提供基于關鍵字的檢索,難以支持根據語義信息提出的查詢。
為了解決上述問題,定向抓取相關網頁資源的聚焦爬蟲應運而生。聚焦爬蟲是一個自動下載網頁的程序,它根據既定的抓取目標,有選擇的訪問萬維網上的網頁與相關的鏈接,獲取所需要的信息。與通用爬蟲(generalpurposewebcrawler)不同,聚焦爬蟲并不追求大的覆蓋,而將目標定為抓取與某一特定主題內容相關的網頁,為面向主題的用戶查詢準備數據資源。
聚焦爬蟲工作原理以及關鍵技術
網絡爬蟲是一個自動提取網頁的程序,它為搜索引擎從萬維網上下載網頁,是搜索引擎的重要組成。傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。聚焦爬蟲的工作流程較為復雜,需要根據一定的網頁分析算法過濾與主題無關的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊列。然后,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,并重復上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,并建立索引,以便之后的查詢和檢索;對于聚焦爬蟲來說,這一過程所得到的分析結果還可能對以后的抓取過程給出反饋和指導。
相對于通用網絡爬蟲,聚焦爬蟲還需要解決三個主要問題:
(1)對抓取目標的描述或定義;
(2)對網頁或數據的分析與過濾;
(3)對URL的搜索策略。
搜索引擎蜘蛛面臨的問題
截止到2007年底,Internet上網頁數量超出160億個,研究表明接近30%的頁面是重復的;動態頁面的存在:客戶端、服務器端腳本語言的應用使得指向相同Web信息的URL數量呈指數級增長。上述特征使得網絡爬蟲面臨一定的困難,主要體現在Web信息的巨大容量使得爬蟲在給定時間內只能下載少量網頁。Lawrence和Giles的研究表明沒有哪個搜索引擎能夠索引超出16%的Internet上Web頁面,即使能夠提取全部頁面,也沒有足夠的空間來存儲。
為提高爬行效率,爬蟲需要在單位時間內盡可能多的獲取高質量頁面,是它面臨的難題之一。當前有五種表示頁面質量高低的方式:Similarity(頁面與爬行主題之間的相似度)、Backlink(頁面在Web圖中的入度大小)、PageRank(指向它的所有頁面平均權值之和)、Forwardlink(頁面在Web圖中的出度大小)、Location(頁面的信息位置);Parallel(并行性問題)[3]。為了提高爬行速度,網絡通常會采取并行爬行的工作方式,隨之引入了新的問題:重復性(并行運行的爬蟲或爬行線程同時運行時增加了重復頁面)、質量問題(并行運行時,每個爬蟲或爬行線程只能獲取部分頁面,導致頁面質量下降)、通信帶寬代價(并行運行時,各個爬蟲或爬行線程之間不可避免要進行一些通信)。并行運行時,網絡爬蟲通常采用三種方式:獨立方式(各個爬蟲獨立爬行頁面,互不通信)、動態分配方式(由一個中央協調器動態協調分配URL給各個爬蟲)、靜態分配方式(URL事先劃分給各個爬蟲)。