基于廣度優先搜索的網絡蜘蛛設計_第1頁
基于廣度優先搜索的網絡蜘蛛設計_第2頁
基于廣度優先搜索的網絡蜘蛛設計_第3頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于廣度優先搜索的網絡蜘蛛設計

【摘要】網絡蜘蛛搜索策略的研究是近年來專業搜索引擎研究的焦點之一,如何使搜索引擎快速準確地從龐大的網頁數據中獲取所需資源的需求是目前所面臨的重要問題。本文重點闡述了搜索引擎的WebSpider(網絡蜘蛛)的搜索策略和搜索優化措施,提出了一種簡單的基于廣度優先算法的網絡蜘蛛設計方案,并分析了設計過程中的優化措施。【關鍵詞】搜索引擎;網絡蜘蛛;搜索策略0引言近年來,隨著Internet技術的廣泛應用,傳統的通用搜索引擎,如Google、Fast、AltaVista和GoTo等正面臨巨大的挑戰。挑戰之一是Web信息資源呈指數級增長,搜索引擎無法索引所有頁面。據統計,目前Web上靜態頁面的數量超過40億個,而且這一數量還在以平均每天730萬個頁面的速度遞增。在過去的幾年中,盡管各種通用搜索引擎在索引技術、索引數量上有所提高,但遠遠無法跟上Web本身的增長速度,即使是目前全球最大的搜索引擎Google,其索引的頁面數量僅占Web總量的40%;挑戰之二是Web信息資源的動態變化,搜索引擎無法保證對信息的及時更新。近年來的研究表明,Web上的頁面平均50天就有約50%的頁面發生變化,而目前通用搜索引擎更新的時間至少需要數星期之久;挑戰之三是傳統的搜索引擎提供的信息檢索服務,不能滿足人們日益增長的對個性化服務的需要。因此如何設計網絡蜘蛛(WebSpider)來更有效率的爬取互聯網上的內容成為搜索引擎的一個首要問題。在設計網絡蜘蛛時,不僅需要充分考慮到爬取的效率和站點設置的靈活性還要確保系統的穩定性。一個優秀的搜索引擎,需要不斷的優化網絡蜘蛛的算法,提升其性能。本文在分析網絡蜘蛛的工作原理的基礎上,提出了一種基于廣度優先搜索算法的網絡蜘蛛的實現,并對提高網絡蜘蛛搜索效率的相關看法。由于不可能抓取所有的網頁,有些網絡蜘蛛對一些不太重要的網站,設置了訪問的層數。[2]例如,在上圖中,A為起始網頁,屬于0層,B、C、D、E、F屬于第1層,G、H屬于第2層,I屬于第3層。如果網絡蜘蛛設置的訪問層數為2的話,網頁I是不會被訪問到的。這也讓有些網站上一部分網頁能夠在搜索引擎上搜索到,另外一部分不能被搜索到。對于網站設計者來說,扁平化的網站結構設計有助于搜索引擎抓取其更多的網頁。網絡蜘蛛在訪問網站網頁的時候,經常會遇到加密數據和網頁權限的問題,有些網頁是需要會員權限才能訪問。當然,網站的所有者可以通過協議讓網絡蜘蛛不去抓取(下小節會介紹),但對于一些出售報告的網站,他們希望搜索引擎能搜索到他們的報告,但又不能完全免費的讓搜索者查看,這樣就需要給網絡蜘蛛提供相應的用戶名和密碼。網絡蜘蛛可以通過所給的權限對這些網頁進行網頁抓取,從而提供搜索。而當搜索者點擊查看該網頁的時候,同樣需要搜索者提供相應的權限驗證。2網絡蜘蛛的設計根據抓取過程,蜘蛛主要分為三個功能模塊,一個是網頁讀取模塊主要是用來讀取遠程Web服務器上的網頁內容,另一個是超鏈分析模塊,這個模塊主要是分析網頁中的超鏈接,將網頁上的所有超鏈接提取出來,放入到待抓取URL列表中,再一個模塊就是內容分析模塊,這個模塊主要是對網頁內容進行分析,將網頁中所有超標志去掉只留下網頁文字內容。蜘蛛的主要工作流程如圖所示。首先蜘蛛讀取抓取站點的URL列表,取出一個站點URL,將其放入未訪問的URL列表(UVURL列表)中,如果UVURL不為空剛從中取出一個URL判斷是否已經訪問過,若沒有訪問過則讀取此網頁,并進行超鏈分析及內容分析,并將些頁存入文檔數據庫,并將些URL放入已訪問URL列表(VURL列表),直到UVRL為空為止,此時再抓取其他站點,依次循環直到所有的站點URL列表都抓取完為止。為了提高網絡蜘蛛的抓取效率,需要引入以下技術。(1)、多線程技術:由于抓取的站點URL相當多,采用單線程蜘蛛抓取時速度不夠,也不能滿足實際的需要。因而需要多線程技術來創建多個蜘蛛線程來同時抓取,以提高速度。(2)、網頁抓取:網頁抓取是基于HTTP協議之上的,網頁上的資源有多種,有網頁,有Word文檔也有其他類型的文件,這樣抓取時需要判斷URL所指向資源的類型。(3)、超鏈分析:超鏈分析是一個比較重要的環節,需要對HTML的各種標志(tag)有一個很全面的了解。需要反復測試,考慮各種情形的發生。超鏈分析時從網頁里提取出來的是相對于當前頁的相對URL,因而需要根據當前頁的絕對URL將提取的這個URL轉換成絕對URL。在此過程中需要根據ParentURL(就是當前頁的URL)作出各種判斷。3改進方法商業化的蜘蛛需要抓取上億的網頁,因而抓取速度是一個關鍵,另外蜘蛛需要自動運行,盡是減少人工的參與,因而系統的性能也是一個很重要的關鍵,系統能夠在發生異常的時候自動進行處理,防止程序的退出和死機。[3]有一些細節需要注意:系統應該使用多線程,使用多個蜘蛛同時抓取,在可能的情況下,最好是做成分布式的蜘蛛程序,蜘蛛應該分布地網絡上多臺服務器上協同抓取網頁,這樣速度會更快,更符合我們的實際應用。對于同一網站的網頁應該采用同一個HttpConnection這樣有效地節省創建一個連接的時間,另外對于抓取的URL采用域名緩沖機制(可在網關一級上實現),這樣抓取時減少由域名到IP地址的轉換時間以及重復的域名轉換。若能做到這一步將會大大減少抓取時間,因為訪問一URL時每次都要進行域名到主機IP地址的轉換。最好是能夠將讀取網頁、超鏈分析及網頁內容分析三部分分開來做,讓它們并行協同工作,這樣效率會更高。因為在這三個過程中網頁讀取比起其他兩個功能來說是一個長任務,最耗時間。當抓取完一網頁后,在抓取下一網頁的時候讓去執行超鏈分析和內容分析。這樣在下一網頁抓取完成之前超鏈分析和內容分析任務就能完成,抓取任務不會延遲,這樣節省了一些時間。4

結束語隨著人們對“個性化”信息服務需要的日益增長,專業搜索引擎的發展將成為搜索引擎發展的主要趨勢之一。[4]網絡蜘蛛搜索策略問題的研究,對專業搜索引擎的應用與發展具有重要意義。本文對現有的網絡蜘蛛搜索策略進行了簡單的介紹和分析,提出了

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論