資源描述:
《高性能網(wǎng)絡(luò)爬蟲_研究綜述.pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、第36卷第8期計(jì)算機(jī)科學(xué)Vol.36No.82009年8月ComputerScienceAug2009高性能網(wǎng)絡(luò)爬蟲:研究綜述周德懋李舟軍(北京航空航天大學(xué)計(jì)算機(jī)學(xué)院北京100191)摘要網(wǎng)絡(luò)爬蟲是一種自動(dòng)下載網(wǎng)絡(luò)資源的程序,是搜索引擎的基礎(chǔ)構(gòu)件之一。系統(tǒng)地介紹了網(wǎng)絡(luò)爬蟲的工作原理和發(fā)展現(xiàn)狀,詳細(xì)地闡述了一個(gè)高性能、可伸縮、分布式的網(wǎng)絡(luò)爬蟲的系統(tǒng)架構(gòu)和所面臨的關(guān)鍵問題。關(guān)鍵詞網(wǎng)絡(luò)爬蟲,高性能,可伸縮,分布式SurveyofHigh2performanceWebCrawlerZHOUDe2maoLIZhou2jun(Scho
2、olofComputerScienceandEngineering,BeihangUniversity,Beijing100191,China)AbstractWebCrawlers,oneofbasiccomponentsofSearchEngine,areprogramstodownloadresourcesfromInternet.WeilluminatedtheworktheoryoftheWebCrawlers,anditsdevelopment,andhowtodesignahigh2performance,s
3、cala2ble,distributedWebcrawler,includingthefacedkeyproblem.KeywordsCrawler,High2performance,Scalability之間的交互,也是一個(gè)重要議題。(3)“禮貌”爬行。Crawler1引言不能在短時(shí)間內(nèi)大數(shù)據(jù)量地集中訪問同一個(gè)主機(jī)下的網(wǎng)頁(yè),信息社會(huì)的飛速發(fā)展使互聯(lián)網(wǎng)的容量達(dá)到一個(gè)空前的高否則會(huì)影響普通用戶對(duì)其的訪問,進(jìn)而可能被對(duì)方限制訪問。[10](4)可定制性??筛鶕?jù)不同的爬行任務(wù)(例如Blog,BBS)和特度。Google宣稱它們索
4、引的網(wǎng)頁(yè)數(shù)目已達(dá)到10000億,中[11]國(guó)的網(wǎng)頁(yè)規(guī)模也超過了100億,這對(duì)搜索引擎提出了更高定的主題定制相應(yīng)的功能模塊,使功能插件化,打造個(gè)性化的要求。搜索引擎的性能指標(biāo)主要有3個(gè):首先考慮的是規(guī)Crawler。模的大小,只有規(guī)模達(dá)到一定的數(shù)量級(jí),搜索結(jié)果才能更好地2研究現(xiàn)狀滿足用戶;其次是性能,搜索引擎必須在一個(gè)較短的時(shí)間內(nèi)完[6]成對(duì)目標(biāo)網(wǎng)絡(luò)的信息搜集,同時(shí)能夠在用戶可容忍的時(shí)間段斯坦福大學(xué)設(shè)計(jì)了用于Google的爬蟲。早期的內(nèi)完成搜索結(jié)果的反饋;最后是搜索的質(zhì)量,能夠去掉信息重Google爬蟲系統(tǒng)由5個(gè)模塊處理不同
5、的任務(wù)。一個(gè)URL服復(fù)的網(wǎng)頁(yè),對(duì)一些無(wú)用信息進(jìn)行過濾,能夠準(zhǔn)確返回用戶想要?jiǎng)?wù)器從磁盤文件讀URL列表并將其轉(zhuǎn)發(fā)到Crawler上。每的結(jié)果。個(gè)Crawler單獨(dú)運(yùn)行在一臺(tái)機(jī)器上,采用單線程異步IO方作為搜索引擎的基礎(chǔ)構(gòu)件之一,網(wǎng)絡(luò)爬蟲(Crawler)直接式,一次維持300個(gè)連接并行爬行。Crawler將網(wǎng)頁(yè)傳輸?shù)酱婷嫦蚧ヂ?lián)網(wǎng),它是搜索引擎的數(shù)據(jù)來源,決定著整個(gè)系統(tǒng)的內(nèi)儲(chǔ)服務(wù)器上壓縮并保存。索引進(jìn)程從HTML頁(yè)面中抽取鏈容是否豐富、信息能否得到及時(shí)更新。它的性能表現(xiàn)直接影接并存放在不同的文件中。一個(gè)URL解析器讀取這些鏈接
6、響整個(gè)搜索引擎的效果。Crawler的工作原理如下:從一個(gè)初文件并轉(zhuǎn)化為絕對(duì)路徑,由URL服務(wù)器讀取。后期Google[3])始URLs集(稱為種子URLs)出發(fā),從中獲取一個(gè)URL,下載的改進(jìn)主要有:(1)采用自有的文件系統(tǒng)(GFS和數(shù)據(jù)庫(kù)系[5])[2]網(wǎng)頁(yè),從網(wǎng)頁(yè)中抽取所有的URLs,并將新的URLs添加到統(tǒng)(BigTable來存取數(shù)據(jù);(2)采用MapReduce技術(shù)來分URLs隊(duì)列中。然后,Crawler從隊(duì)列中獲取另一個(gè)URL。布式處理各種數(shù)據(jù)的運(yùn)算。重復(fù)剛才的過程,直到Crawler達(dá)到某種停止標(biāo)準(zhǔn)為止。康柏
7、系統(tǒng)研究中心的AllanHeydon和MarcNajork設(shè)計(jì)[17]Crawler的工作原理如此簡(jiǎn)單,然而設(shè)計(jì)一個(gè)高性能的網(wǎng)了名叫Mercator的爬行器。系統(tǒng)采用Java的多線程同步絡(luò)爬蟲卻是一件相當(dāng)有挑戰(zhàn)性的工作,不管是在學(xué)術(shù)界還是方式實(shí)現(xiàn)并行處理,并加入了很多優(yōu)化策略如DNS緩沖、延工業(yè)界,對(duì)它的研究和改良從未間斷過。一個(gè)高性能的遲存儲(chǔ)等以提升爬行器運(yùn)行效率。它采用的數(shù)據(jù)結(jié)構(gòu)可以不Crawler需要從以下幾個(gè)方面來考慮:(1)可伸縮性。能勝任管爬行規(guī)模的大小,在內(nèi)存中只占有限的空間。這些數(shù)據(jù)結(jié)海量數(shù)據(jù)的抓取,并可通
8、過增加硬件資源使性能得到線性提構(gòu)的大部分都在磁盤上,在內(nèi)存中只存放有限的部分,伸縮性高。(2)分布式。集中式的Crawler架構(gòu)已經(jīng)不能滿足目前很強(qiáng)。Mercator采用模塊化設(shè)計(jì)的思想,通過替換以及增減互聯(lián)網(wǎng)的規(guī)模,因此支持分布式的爬行,處理和協(xié)調(diào)好各結(jié)點(diǎn)模塊可以很方便地實(shí)現(xiàn)各種功能,如進(jìn)行各類Web