網(wǎng)絡(luò)蜘蛛設(shè)計(jì)研究論文

時(shí)間:2022-03-12 08:45:00

導(dǎo)語:網(wǎng)絡(luò)蜘蛛設(shè)計(jì)研究論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

網(wǎng)絡(luò)蜘蛛設(shè)計(jì)研究論文

【摘要】網(wǎng)絡(luò)蜘蛛搜索策略的研究是近年來專業(yè)搜索引擎研究的焦點(diǎn)之一,如何使搜索引擎快速準(zhǔn)確地從龐大的網(wǎng)頁數(shù)據(jù)中獲取所需資源的需求是目前所面臨的重要問題。本文重點(diǎn)闡述了搜索引擎的WebSpider(網(wǎng)絡(luò)蜘蛛)的搜索策略和搜索優(yōu)化措施,提出了一種簡單的基于廣度優(yōu)先算法的網(wǎng)絡(luò)蜘蛛設(shè)計(jì)方案,并分析了設(shè)計(jì)過程中的優(yōu)化措施。

【關(guān)鍵詞】搜索引擎;網(wǎng)絡(luò)蜘蛛;搜索策略

0引言

近年來,隨著Internet技術(shù)的廣泛應(yīng)用,傳統(tǒng)的通用搜索引擎,如Google、Fast、AltaVista和GoTo等正面臨巨大的挑戰(zhàn)。挑戰(zhàn)之一是Web信息資源呈指數(shù)級增長,搜索引擎無法索引所有頁面。據(jù)統(tǒng)計(jì),目前Web上靜態(tài)頁面的數(shù)量超過40億個(gè),而且這一數(shù)量還在以平均每天730萬個(gè)頁面的速度遞增。在過去的幾年中,盡管各種通用搜索引擎在索引技術(shù)、索引數(shù)量上有所提高,但遠(yuǎn)遠(yuǎn)無法跟上Web本身的增長速度,即使是目前全球最大的搜索引擎Google,其索引的頁面數(shù)量僅占Web總量的40%;挑戰(zhàn)之二是Web信息資源的動態(tài)變化,搜索引擎無法保證對信息的及時(shí)更新。近年來的研究表明,Web上的頁面平均50天就有約50%的頁面發(fā)生變化,而目前通用搜索引擎更新的時(shí)間至少需要數(shù)星期之久;挑戰(zhàn)之三是傳統(tǒng)的搜索引擎提供的信息檢索服務(wù),不能滿足人們?nèi)找嬖鲩L的對個(gè)性化服務(wù)的需要。因此如何設(shè)計(jì)網(wǎng)絡(luò)蜘蛛(WebSpider)來更有效率的爬取互聯(lián)網(wǎng)上的內(nèi)容成為搜索引擎的一個(gè)首要問題。在設(shè)計(jì)網(wǎng)絡(luò)蜘蛛時(shí),不僅需要充分考慮到爬取的效率和站點(diǎn)設(shè)置的靈活性還要確保系統(tǒng)的穩(wěn)定性。一個(gè)優(yōu)秀的搜索引擎,需要不斷的優(yōu)化網(wǎng)絡(luò)蜘蛛的算法,提升其性能。本文在分析網(wǎng)絡(luò)蜘蛛的工作原理的基礎(chǔ)上,提出了一種基于廣度優(yōu)先搜索算法的網(wǎng)絡(luò)蜘蛛的實(shí)現(xiàn),并對提高網(wǎng)絡(luò)蜘蛛搜索效率的相關(guān)看法。

由于不可能抓取所有的網(wǎng)頁,有些網(wǎng)絡(luò)蜘蛛對一些不太重要的網(wǎng)站,設(shè)置了訪問的層數(shù)。[2]例如,在上圖中,A為起始網(wǎng)頁,屬于0層,B、C、D、E、F屬于第1層,G、H屬于第2層,I屬于第3層。如果網(wǎng)絡(luò)蜘蛛設(shè)置的訪問層數(shù)為2的話,網(wǎng)頁I是不會被訪問到的。這也讓有些網(wǎng)站上一部分網(wǎng)頁能夠在搜索引擎上搜索到,另外一部分不能被搜索到。對于網(wǎng)站設(shè)計(jì)者來說,扁平化的網(wǎng)站結(jié)構(gòu)設(shè)計(jì)有助于搜索引擎抓取其更多的網(wǎng)頁。網(wǎng)絡(luò)蜘蛛在訪問網(wǎng)站網(wǎng)頁的時(shí)候,經(jīng)常會遇到加密數(shù)據(jù)和網(wǎng)頁權(quán)限的問題,有些網(wǎng)頁是需要會員權(quán)限才能訪問。當(dāng)然,網(wǎng)站的所有者可以通過協(xié)議讓網(wǎng)絡(luò)蜘蛛不去抓取(下小節(jié)會介紹),但對于一些出售報(bào)告的網(wǎng)站,他們希望搜索引擎能搜索到他們的報(bào)告,但又不能完全免費(fèi)的讓搜索者查看,這樣就需要給網(wǎng)絡(luò)蜘蛛提供相應(yīng)的用戶名和密碼。網(wǎng)絡(luò)蜘蛛可以通過所給的權(quán)限對這些網(wǎng)頁進(jìn)行網(wǎng)頁抓取,從而提供搜索。而當(dāng)搜索者點(diǎn)擊查看該網(wǎng)頁的時(shí)候,同樣需要搜索者提供相應(yīng)的權(quán)限驗(yàn)證。

2網(wǎng)絡(luò)蜘蛛的設(shè)計(jì)

根據(jù)抓取過程,蜘蛛主要分為三個(gè)功能模塊,一個(gè)是網(wǎng)頁讀取模塊主要是用來讀取遠(yuǎn)程Web服務(wù)器上的網(wǎng)頁內(nèi)容,另一個(gè)是超鏈分析模塊,這個(gè)模塊主要是分析網(wǎng)頁中的超鏈接,將網(wǎng)頁上的所有超鏈接提取出來,放入到待抓取URL列表中,再一個(gè)模塊就是內(nèi)容分析模塊,這個(gè)模塊主要是對網(wǎng)頁內(nèi)容進(jìn)行分析,將網(wǎng)頁中所有超標(biāo)志去掉只留下網(wǎng)頁文字內(nèi)容。蜘蛛的主要工作流程如圖所示。

首先蜘蛛讀取抓取站點(diǎn)的URL列表,取出一個(gè)站點(diǎn)URL,將其放入未訪問的URL列表(UVURL列表)中,如果UVURL不為空剛從中取出一個(gè)URL判斷是否已經(jīng)訪問過,若沒有訪問過則讀取此網(wǎng)頁,并進(jìn)行超鏈分析及內(nèi)容分析,并將些頁存入文檔數(shù)據(jù)庫,并將些URL放入已訪問URL列表(VURL列表),直到UVRL為空為止,此時(shí)再抓取其他站點(diǎn),依次循環(huán)直到所有的站點(diǎn)URL列表都抓取完為止。

為了提高網(wǎng)絡(luò)蜘蛛的抓取效率,需要引入以下技術(shù)。

(1)、多線程技術(shù):由于抓取的站點(diǎn)URL相當(dāng)多,采用單線程蜘蛛抓取時(shí)速度不夠,也不能滿足實(shí)際的需要。因而需要多線程技術(shù)來創(chuàng)建多個(gè)蜘蛛線程來同時(shí)抓取,以提高速度。

(2)、網(wǎng)頁抓取:網(wǎng)頁抓取是基于HTTP協(xié)議之上的,網(wǎng)頁上的資源有多種,有網(wǎng)頁,有Word文檔也有其他類型的文件,這樣抓取時(shí)需要判斷URL所指向資源的類型。

(3)、超鏈分析:超鏈分析是一個(gè)比較重要的環(huán)節(jié),需要對HTML的各種標(biāo)志(tag)有一個(gè)很全面的了解。需要反復(fù)測試,考慮各種情形的發(fā)生。

超鏈分析時(shí)從網(wǎng)頁里提取出來的是相對于當(dāng)前頁的相對URL,因而需要根據(jù)當(dāng)前頁的絕對URL將提取的這個(gè)URL轉(zhuǎn)換成絕對URL。在此過程中需要根據(jù)ParentURL(就是當(dāng)前頁的URL)作出各種判斷。

3改進(jìn)方法

商業(yè)化的蜘蛛需要抓取上億的網(wǎng)頁,因而抓取速度是一個(gè)關(guān)鍵,另外蜘蛛需要自動運(yùn)行,盡是減少人工的參與,因而系統(tǒng)的性能也是一個(gè)很重要的關(guān)鍵,系統(tǒng)能夠在發(fā)生異常的時(shí)候自動進(jìn)行處理,防止程序的退出和死機(jī)。[3]有一些細(xì)節(jié)需要注意:

系統(tǒng)應(yīng)該使用多線程,使用多個(gè)蜘蛛同時(shí)抓取,在可能的情況下,最好是做成分布式的蜘蛛程序,蜘蛛應(yīng)該分布地網(wǎng)絡(luò)上多臺服務(wù)器上協(xié)同抓取網(wǎng)頁,這樣速度會更快,更符合我們的實(shí)際應(yīng)用。

對于同一網(wǎng)站的網(wǎng)頁應(yīng)該采用同一個(gè)HttpConnection這樣有效地節(jié)省創(chuàng)建一個(gè)連接的時(shí)間,另外對于抓取的URL采用域名緩沖機(jī)制(可在網(wǎng)關(guān)一級上實(shí)現(xiàn)),這樣抓取時(shí)減少由域名到IP地址的轉(zhuǎn)換時(shí)間以及重復(fù)的域名轉(zhuǎn)換。若能做到這一步將會大大減少抓取時(shí)間,因?yàn)樵L問一URL時(shí)每次都要進(jìn)行域名到主機(jī)IP地址的轉(zhuǎn)換。

最好是能夠?qū)⒆x取網(wǎng)頁、超鏈分析及網(wǎng)頁內(nèi)容分析三部分分開來做,讓它們并行協(xié)同工作,這樣效率會更高。因?yàn)樵谶@三個(gè)過程中網(wǎng)頁讀取比起其他兩個(gè)功能來說是一個(gè)長任務(wù),最耗時(shí)間。當(dāng)抓取完一網(wǎng)頁后,在抓取下一網(wǎng)頁的時(shí)候讓去執(zhí)行超鏈分析和內(nèi)容分析。這樣在下一網(wǎng)頁抓取完成之前超鏈分析和內(nèi)容分析任務(wù)就能完成,抓取任務(wù)不會延遲,這樣節(jié)省了一些時(shí)間。

4結(jié)束語

隨著人們對“個(gè)性化”信息服務(wù)需要的日益增長,專業(yè)搜索引擎的發(fā)展將成為搜索引擎發(fā)展的主要趨勢之一。[4]網(wǎng)絡(luò)蜘蛛搜索策略問題的研究,對專業(yè)搜索引擎的應(yīng)用與發(fā)展具有重要意義。本文對現(xiàn)有的網(wǎng)絡(luò)蜘蛛搜索策略進(jìn)行了簡單的介紹和分析,提出了一種基于廣度優(yōu)先搜索網(wǎng)絡(luò)蜘蛛設(shè)計(jì)方案。提出了提高網(wǎng)絡(luò)蜘蛛效率的幾種方法。目前的網(wǎng)絡(luò)蜘蛛通常采用“固定的”搜索策略,缺乏適應(yīng)性,如何提高網(wǎng)絡(luò)蜘蛛的自適應(yīng)性有待進(jìn)一步研究。總之,網(wǎng)絡(luò)蜘蛛搜索策略問題的研究還處于發(fā)展階段,無論是模型、搜索算法,還是實(shí)驗(yàn)方法都還有

許多有待解決的問題。