時(shí)間: 分類:推薦論文 次數(shù):
【摘要】 網(wǎng)絡(luò)蜘蛛搜索策略的研究是近年來(lái)專業(yè)搜索引擎研究的焦點(diǎn)之一,如何使搜索引擎快速準(zhǔn)確地從龐大的網(wǎng)頁(yè)數(shù)據(jù)中獲取所需資源的需求是目前所面臨的重要問(wèn)題。本文重點(diǎn)闡述了搜索引擎的 Web Spider (網(wǎng)絡(luò)蜘蛛)的搜索策略和搜索優(yōu)化措施, 提出了一種簡(jiǎn)單的基于廣度優(yōu)先算法的網(wǎng)絡(luò)蜘蛛設(shè)計(jì)方案,并分析了設(shè)計(jì)過(guò)程中的優(yōu)化措施。
【關(guān)鍵詞】 中國(guó)期刊之家,搜索引擎,網(wǎng)絡(luò)蜘蛛,搜索策略
0 引言
近年來(lái),隨著 Internet 技術(shù)的廣泛應(yīng)用,傳統(tǒng)的 通用搜索引擎,如 Google、Fast、Alta Vista 和 GoTo 等正面臨巨大的挑戰(zhàn)。挑戰(zhàn)之一是 Web 信息資源呈 指數(shù)級(jí)增長(zhǎng),搜索引擎無(wú)法索引所有頁(yè)面。據(jù)統(tǒng)計(jì), 目前 Web 上靜態(tài)頁(yè)面的數(shù)量超過(guò) 40 億個(gè),而且這 一數(shù)量還在以平均每天 730 萬(wàn)個(gè)頁(yè)面的速度遞增。 在過(guò)去的幾年中,盡管各種通用搜索引擎在索引技 術(shù)、索引數(shù)量上有所提高,但遠(yuǎn)遠(yuǎn)無(wú)法跟上 Web 本 身的增長(zhǎng)速度,即使是目前全球最大的搜索引擎 Google,其索引的頁(yè)面數(shù)量?jī)H占 Web 總量的 40%; 挑戰(zhàn)之二是 Web 信息資源的動(dòng)態(tài)變化,搜索引擎無(wú) 法保證對(duì)信息的及時(shí)更新。近年來(lái)的研究表明,Web 上的頁(yè)面平均 50 天就有約 50%的頁(yè)面發(fā)生變化, 而目前通用搜索引擎更新的時(shí)間至少需要數(shù)星期之 久;挑戰(zhàn)之三是傳統(tǒng)的搜索引擎提供的信息檢索服務(wù),不能滿足人們?nèi)找嬖鲩L(zhǎng)的對(duì)個(gè)性化服務(wù)的需要。因此如何設(shè)計(jì)網(wǎng)絡(luò)蜘蛛(Web Spider)來(lái)更有效率的爬 取互聯(lián)網(wǎng)上的內(nèi)容成為搜索引擎的一個(gè)首要問(wèn)題。 在設(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),并對(duì)提高網(wǎng)絡(luò)蜘蛛搜索效率的相關(guān)看法。
由于不可能抓取所有的網(wǎng)頁(yè),有些網(wǎng)絡(luò)蜘蛛對(duì)一些不太重要的網(wǎng)站,設(shè)置了訪問(wèn)的層數(shù)。[2]例如, 在上圖中,A 為起始網(wǎng)頁(yè),屬于 0 層,B、C、D、 E、F 屬于第 1 層,G、H 屬于第 2 層,I 屬于第 3 層。如果網(wǎng)絡(luò)蜘蛛設(shè)置的訪問(wèn)層數(shù)為 2 的話,網(wǎng)頁(yè)I 是不會(huì)被訪問(wèn)到的。這也讓有些網(wǎng)站上一部分網(wǎng) 頁(yè)能夠在搜索引擎上搜索到,另外一部分不能被搜索到。 對(duì)于網(wǎng)站設(shè)計(jì)者來(lái)說(shuō),扁平化的網(wǎng)站結(jié)構(gòu)設(shè)計(jì)有助于搜索引擎抓取其更多的網(wǎng)頁(yè)。 網(wǎng)絡(luò)蜘蛛在訪問(wèn)網(wǎng)站網(wǎng)頁(yè)的時(shí)候,經(jīng)常會(huì)遇到加密數(shù)據(jù)和網(wǎng)頁(yè)權(quán)限的問(wèn)題,有些網(wǎng)頁(yè)是需要會(huì)員 權(quán)限才能訪問(wèn)。當(dāng)然,網(wǎng)站的所有者可以通過(guò)協(xié)議 讓網(wǎng)絡(luò)蜘蛛不去抓取(下小節(jié)會(huì)介紹),但對(duì)于一些出售報(bào)告的網(wǎng)站,他們希望搜索引擎能搜索到他 們的報(bào)告,但又不能完全免費(fèi)的讓搜索者查看,這樣就需要給網(wǎng)絡(luò)蜘蛛提供相應(yīng)的用戶名和密碼。網(wǎng) 絡(luò)蜘蛛可以通過(guò)所給的權(quán)限對(duì)這些網(wǎng)頁(yè)進(jìn)行網(wǎng)頁(yè)抓取,從而提供搜索。而當(dāng)搜索者點(diǎn)擊查看該網(wǎng)頁(yè)的 時(shí)候,同樣需要搜索者提供相應(yīng)的權(quán)限驗(yàn)證。
2 網(wǎng)絡(luò)蜘蛛的設(shè)計(jì)
根據(jù)抓取過(guò)程,蜘蛛主要分為三個(gè)功能模塊, 一個(gè)是網(wǎng)頁(yè)讀取模塊主要是用來(lái)讀取遠(yuǎn)程 Web 服 務(wù)器上的網(wǎng)頁(yè)內(nèi)容,另一個(gè)是超鏈分析模塊,這個(gè) 模塊主要是分析網(wǎng)頁(yè)中的超鏈接,將網(wǎng)頁(yè)上的所有 超鏈接提取出來(lái),放入到待抓取 URL 列表中,再一 個(gè)模塊就是內(nèi)容分析模塊,這個(gè)模塊主要是對(duì)網(wǎng)頁(yè) 內(nèi)容進(jìn)行分析,將網(wǎng)頁(yè)中所有超標(biāo)志去掉只留下網(wǎng) 頁(yè)文字內(nèi)容。蜘蛛的主要工作流程如圖所示。
首先蜘蛛讀取抓取站點(diǎn)的 URL 列表,取出一個(gè) 站點(diǎn) URL,將其放入未訪問(wèn)的 URL 列表(UVURL 列表)中,如果 UVURL 不為空剛從中取出一個(gè) URL 判斷是否已經(jīng)訪問(wèn)過(guò),若沒(méi)有訪問(wèn)過(guò)則讀取此網(wǎng)頁(yè), 并進(jìn)行超鏈分析及內(nèi)容分析,并將些頁(yè)存入文檔數(shù) 據(jù)庫(kù),并將些 URL 放入已訪問(wèn) 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ù)來(lái)創(chuàng)建多個(gè)蜘蛛線程來(lái)同時(shí)抓取,以提高速度。
(2)、 網(wǎng)頁(yè)抓取:網(wǎng)頁(yè)抓取是基于 HTTP 協(xié)議之上的, 網(wǎng)頁(yè)上的資源有多種,有網(wǎng)頁(yè),有 Word 文檔也 有其他類型的文件,這樣抓取時(shí)需要判斷 URL 所指向資源的類型。
(3)、 超鏈分析:超鏈分析是一個(gè)比較重要的環(huán)節(jié),需要對(duì) HTML 的各種標(biāo)志(tag)有一個(gè)很全面 的了解。需要反復(fù)測(cè)試,考慮各種情形的發(fā)生。
超鏈分析時(shí)從網(wǎng)頁(yè)里提取出來(lái)的是相對(duì)于當(dāng)前 頁(yè)的相對(duì) URL,因而需要根據(jù)當(dāng)前頁(yè)的絕對(duì) URL 將提取的這個(gè) URL 轉(zhuǎn)換成絕對(duì) URL。在 此過(guò)程中需要根據(jù) ParentURL(就是當(dāng)前頁(yè)的 URL)作出各種判斷。
3 改進(jìn)方法
商業(yè)化的蜘蛛需要抓取上億的網(wǎng)頁(yè),因而抓取 速度是一個(gè)關(guān)鍵,另外蜘蛛需要自動(dòng)運(yùn)行,盡是減 少人工的參與,因而系統(tǒng)的性能也是一個(gè)很重要的 關(guān)鍵,系統(tǒng)能夠在發(fā)生異常的時(shí)候自動(dòng)進(jìn)行處理, 防止程序的退出和死機(jī)。[3]有一些細(xì)節(jié)需要注意:
系統(tǒng)應(yīng)該使用多線程,使用多個(gè)蜘蛛同時(shí)抓取,在可能的情況下,最好是做成 分布式的蜘蛛程序,蜘蛛應(yīng)該分布地網(wǎng) 絡(luò)上多臺(tái)服務(wù)器上協(xié)同抓取網(wǎng)頁(yè),這樣 速度會(huì)更快,更符合我們的實(shí)際應(yīng)用。
對(duì)于同一網(wǎng)站的網(wǎng)頁(yè)應(yīng)該采用同一個(gè) HttpConnection 這樣有效地節(jié)省創(chuàng)建一 個(gè)連接的時(shí)間,另外對(duì)于抓取的 URL 采用域名緩沖機(jī)制(可在網(wǎng)關(guān)一級(jí)上實(shí) 現(xiàn)),這樣抓取時(shí)減少由域名到 IP 地 址的轉(zhuǎn)換時(shí)間以及重復(fù)的域名轉(zhuǎn)換。若 能做到這一步將會(huì)大大減少抓取時(shí)間, 因?yàn)樵L問(wèn)一 URL 時(shí)每次都要進(jìn)行域名 到主機(jī) IP 地址的轉(zhuǎn)換。
最好是能夠?qū)⒆x取網(wǎng)頁(yè)、超鏈分析及網(wǎng) 頁(yè)內(nèi)容分析三部分分開(kāi)來(lái)做,讓它們并 行協(xié)同工作,這樣效率會(huì)更高。因?yàn)樵谶@三個(gè)過(guò)程中網(wǎng)頁(yè)讀取比起其他兩個(gè) 功能來(lái)說(shuō)是一個(gè)長(zhǎng)任務(wù),最耗時(shí)間。當(dāng)抓取完一網(wǎng)頁(yè)后,在抓取下一網(wǎng)頁(yè)的時(shí)候讓去執(zhí)行超鏈分析和內(nèi)容分析。這樣 在下一網(wǎng)頁(yè)抓取完成之前超鏈分析和 內(nèi)容分析任務(wù)就能完成,抓取任務(wù)不會(huì) 延遲,這樣節(jié)省了一些時(shí)間。
4 結(jié)束語(yǔ)
隨著人們對(duì)“個(gè)性化”信息服務(wù)需要的日益增 長(zhǎng),專業(yè)搜索引擎的發(fā)展將成為搜索引擎發(fā)展的主 要趨勢(shì)之一。[4]網(wǎng)絡(luò)蜘蛛搜索策略問(wèn)題的研究,對(duì)專業(yè)搜索引擎的應(yīng)用與發(fā)展具有重要意義。本文對(duì) 現(xiàn)有的網(wǎng)絡(luò)蜘蛛搜索策略進(jìn)行了簡(jiǎ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ò)蜘蛛搜索策略問(wèn)題的研究還處于發(fā)展階 段,無(wú)論是模型、搜索算法,還是實(shí)驗(yàn)方法都還有許多有待解決的問(wèn)題。
級(jí)別:北大核心,CSSCI,AMI擴(kuò)展
ISSN:1002-6487
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
級(jí)別:北大核心,JST,CSSCI,WJCI,AMI權(quán)威
ISSN:1002-4565
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
級(jí)別:北大核心,JST,CSCD,CSSCI,WJCI
ISSN:1002-2104
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
級(jí)別:北大核心,CSSCI,AMI權(quán)威,社科基金資助期刊,
ISSN:1003-1707
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
級(jí)別:北大核心,CSSCI擴(kuò)展版,AMI核心
ISSN:1003-0476
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
級(jí)別:北大核心,CSSCI擴(kuò)展版,AMI核心
ISSN:1007-8266
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
級(jí)別:北大核心,CSSCI,AMI頂級(jí),社科基金資助期刊,
ISSN:0577-9154
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
級(jí)別:北大核心,CSSCI,AMI核心
ISSN:1001-4233
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
級(jí)別:北大核心,CSSCI,AMI核心,社科基金資助期刊,
ISSN:1671-7465
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
級(jí)別:北大核心,CSSCI,AMI核心,社科基金資助期刊,
ISSN:1005-9245
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
數(shù)據(jù)庫(kù):SCI
ISSN:2045-2322
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
數(shù)據(jù)庫(kù):SCI
ISSN:0284-1851
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
數(shù)據(jù)庫(kù):SCI
ISSN:2352-4928
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
數(shù)據(jù)庫(kù):SCI
ISSN:0169-4332
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
數(shù)據(jù)庫(kù):SCI
ISSN:0960-7412
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
數(shù)據(jù)庫(kù):SCI
ISSN:0048-9697
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
數(shù)據(jù)庫(kù):SCI
ISSN:0191-2917
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
數(shù)據(jù)庫(kù):SCI
ISSN:1741-7007
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
數(shù)據(jù)庫(kù):SCI
ISSN:2214-7144
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)
數(shù)據(jù)庫(kù):SCI
ISSN:2238-7854
刊期:進(jìn)入查看
格式:咨詢顧問(wèn)