




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、僅供個人參考Forpersonaluseonlyinstudyandresearch;notforcommercialuse2從網(wǎng)上找了一些開源spider的相關資料,整理在下面:Larbin開發(fā)語言:C+6larbin是個基于C+的web爬蟲工具,擁有易于操作的界面,不過只能跑在LINUX下,在一臺普通PC下larbin每天可以爬5百萬個頁面(當然啦,需要擁有良好的網(wǎng)絡)簡介Larbin是一種開源的網(wǎng)絡爬蟲/網(wǎng)絡蜘蛛,由法國的年輕人SebastienAilleret獨立開發(fā)。larbin目的是能夠跟蹤頁面的url進行擴展的抓取,最后為搜索引擎提供廣泛的數(shù)據(jù)來源。Larbin只是一個爬蟲,也就
2、是說larbin只抓取網(wǎng)頁,至于如何parse的事情則由用戶自己完成。另外,如何存儲到數(shù)據(jù)庫以及建立索引的事情larbin也不提供。Latbin最初的設計也是依據(jù)設計簡單但是高度可配置性的原則,因此我們可以看到,一個簡單的larbin的爬蟲可以每天獲取500萬的網(wǎng)頁,非常高效。功能1. larbin獲取單個、確定網(wǎng)站的所有聯(lián)結,甚至可以鏡像一個網(wǎng)站。2. larbin建立url列表群,例如針對所有的網(wǎng)頁進行urlretrive后,進行xml的聯(lián)結的獲取?;蛘呤莔p3。3. larbin定制后可以作為搜索引擎的信息的來源(例如可以將抓取下來的網(wǎng)頁每2000組存放在一系列的目錄結構里面)。問題La
3、bin的主要問題是,:僅提供保存網(wǎng)頁保存功能,沒有進行進一步的網(wǎng)頁解析;不支持分布式系統(tǒng);功能相對簡單,提供的配置項也不夠多;不支持網(wǎng)頁自動重訪,更新功能;從2003年底以后,Labin已經(jīng)放棄更新,目前處于荒蕪長草的狀態(tài)Nutch開發(fā)語言:Java簡介:Apache的子項目之一,屬于Lucene項目下的子項目。Nutch是一個基于Lucene,類似Google的完整網(wǎng)絡搜索引擎解決方案,基于Hadoop的分布式處理模型保證了系統(tǒng)的性能,類似Eclipse的插件機制保證了系統(tǒng)的可客戶化,而且很容易集成到自己的應用之中。總體上Nutch可以分為2個部分:抓取部分和搜索部分。抓取程序抓取頁面并把抓
4、取回來的數(shù)據(jù)做成反向索引,搜索程序則對反向索引搜索回答用戶的請求。抓取程序和搜索程序的接口是索引,兩者都使用索引中的字段。抓取程序和搜索程序可以分別位于不同的機器上。下面詳細介紹一下抓取部分。抓取部分:抓取程序是被Nutch的抓取工具驅(qū)動的。這是一組工具,用來建立和維護幾個不同的數(shù)據(jù)結構:webdatabase,asetofsegments,andtheindex。下面逐個解釋這三個不同的數(shù)據(jù)結構:1、Thewebdatabase,或者WebDB。這是一個特殊存儲數(shù)據(jù)結構,用來映像被抓取網(wǎng)站數(shù)據(jù)的結構和屬性的集合。WebDB用來存儲從抓取開始(包括重新抓取)的所有網(wǎng)站結構數(shù)據(jù)和屬性。WebDB
5、只是被抓取程序使用,搜索程序并不使用它。WebDB存儲2種實體:頁面和鏈接。頁面表示網(wǎng)絡上的一個網(wǎng)頁,這個網(wǎng)頁的Url作為標示被索引,同時建立一個對網(wǎng)頁內(nèi)容的MD5哈希簽名。跟網(wǎng)頁相關的其它內(nèi)容也被存儲,包括:頁面中的鏈接數(shù)量(外鏈接),頁面抓取信息(在頁面被重復抓取的情況下),還有表示頁面級別的分數(shù)score;鏈接表示從一個網(wǎng)頁的鏈接到其它網(wǎng)頁的鏈接。因此WebDB可以說是一個網(wǎng)絡圖,節(jié)點是頁面,鏈接是邊。2、Segment。這是網(wǎng)頁的集合,并且它被索引。Segment的Fetchlist是抓取程序使用的url列表,它是從WebDB中生成的。Fetcher的輸出數(shù)據(jù)是從fetchlist中抓
6、取的網(wǎng)頁。Fetcher的輸出數(shù)據(jù)先被反向索引,然后索引后的結果被存儲在segment中。Segment的生命周期是有限制的,當下一輪抓取開始后它就沒有用了。默認的重新抓取間隔是30天。因此刪除超過這個時間期限的segment是可以的。而且也可以節(jié)省不少磁盤空間。Segment的命名是日期加時間,因此很直觀的可以看出他們的存活周期。3、Theindex。索引庫是反向索引所有系統(tǒng)中被抓取的頁面,它并不直接從頁面反向索引產(chǎn)生,而是合并很多小的segment的索引產(chǎn)生的。Nutch使用Lucene來建立索引,因此所有Lucene相關的工具API都用來建立索引庫。需要說明的是Lucene的segmen
7、t的概念和Nutch的segment概念是完全不同的,不要混淆。簡單來說Lucene的segment是Lucene索引庫的一部分,而Nutch的Segment是WebDB中被抓取和索引的一部分。抓取過程詳解:抓取是一個循環(huán)的過程:抓取工具從WebDB中生成了一個fetchlist集合;抽取工具根據(jù)fetchlist從網(wǎng)絡上下載網(wǎng)頁內(nèi)容;工具程序根據(jù)抽取工具發(fā)現(xiàn)的新鏈接更新WebDB;然后再生成新的fetchlist;周而復始。這個抓取循環(huán)在nutch中經(jīng)常指:generate/fetch/update循環(huán)。一般來說同一域名下的url鏈接會被合成到同一個fetchlist。這樣做的考慮是:當同時
8、使用多個工具抓取的時候,不會產(chǎn)生重復抓取的現(xiàn)象。Nutch遵循RobotsExclusionProtocol,可以用robots.txt定義保護私有網(wǎng)頁數(shù)據(jù)不被抓去。上面這個抓取工具的組合是Nutch的最外層的,也可以直接使用更底層的工具,自己組合這些底層工具的執(zhí)行順序達到同樣的結果。這是Nutch吸引人的地方。下面把上述過程分別詳述一下,括號內(nèi)就是底層工具的名字:1、創(chuàng)建一個新的WebDB(admindb-create)。2、把開始抓取的跟Url放入WebDb(inject)。3、從WebDb的新segment中生成fetchlist(generate)。4、根據(jù)fetchlist列表抓取網(wǎng)
9、頁的內(nèi)容(fetch)。5、根據(jù)抓取回來的網(wǎng)頁鏈接url更新WebDB(updatedb)。6、重復上面3-5個步驟直到到達指定的抓取層數(shù)。7、用計算出來的網(wǎng)頁url權重scores更新segments(updatesegs)。8、對抓取回來的網(wǎng)頁建立索引(index)。9、在索引中消除重復的內(nèi)容和重復的url(dedup)。10、合并多個索引到一個大索引,為搜索提供索引庫(merge)。*Heritrix開發(fā)語言:JavaHeritrix是一個開源,可擴展的web爬蟲項目。Heritrix設計成嚴格按照robots.txt文件的排除指示和METArobots標簽。簡介Heritrix與Nut
10、ch對比和Nutch。二者土芻為Java開源框架,Heritrix是SourceForge上的開源產(chǎn)品,Nutch為Apache的一個子項目,它們都稱作網(wǎng)絡爬蟲/蜘蛛(WebCrawler),它們實現(xiàn)的原理基本一致:深度遍歷網(wǎng)站的資源,將這些資源抓取到本地,使用的方法都是分析網(wǎng)站每一個有效的URI,并提交Http請求,從而獲得相應結果,生成本地文件及相應的日志信息等。Heritrix是個"archivalcrawler"-用來獲取完整的、精確的、站點內(nèi)容的深度復制。包括獲取圖像以及其他非文本內(nèi)容。抓取并存儲相關的內(nèi)容。對內(nèi)容來者不拒,不對頁面進行內(nèi)容上的修改。重新爬行對相同
11、的URL不針對先前的進行替換。爬蟲通過Web用戶界面啟動、監(jiān)控、調(diào)整,允許彈性的定義要獲取的URLoNutch和Heritrix的差異:Nutch只獲取并保存可索引的內(nèi)容。Heritrix則是照單全收。力求保存頁面原貌Nutch可以修剪內(nèi)容,或者對內(nèi)容格式進行轉(zhuǎn)換。Nutch保存內(nèi)容為數(shù)據(jù)庫優(yōu)化格式便于以后索引;刷新替換舊的內(nèi)容。而Heritrix是添加(追加)新的內(nèi)容。Nutch從命令行運行、控制。Heritrix有Web控制管理界面。Nutch的定制能力不夠強,不過現(xiàn)在已經(jīng)有了一定改進。Heritrix可控制的參數(shù)更多。Heritrix提供的功能沒有nutch多,有點整站下載的味道。既沒有
12、索引又沒有解析,甚至對于重復爬取URL都處理不是很好Heritrix的功能強大但是配置起來卻有點麻煩。三者的比較一、從功能方面來說,Heritrix與Larbin的功能類似。都是一個純粹的網(wǎng)絡爬蟲,提供網(wǎng)站的鏡像下載。而Nutch是一個網(wǎng)絡搜索引擎框架,爬取網(wǎng)頁只是其功能的一部分。二、從分布式處理來說,Nutch支持分布式處理,而另外兩個好像尚且還沒有支持。三、從爬取的網(wǎng)頁存儲方式來說,Heritrix和Larbin都是將爬取下來的內(nèi)容保存為原始類型的內(nèi)容。而Nutch是將內(nèi)容保存到其特定格式的segment中去。四,對于爬取下來的內(nèi)容的處理來說,Heritrix和Larbin都是將爬取下來的
13、內(nèi)容不經(jīng)處理直接保存為原始內(nèi)容。而Nutch對文本進行了包括鏈接分析、正文提取、建立索引(Lucene索引)等處理。五,從爬取的效率來說,Larbin效率較高,因為其是使用c+實現(xiàn)的并且功能單crawler開發(fā)功能支持分布式效刀口爬取NutchJavaXV低LarbinC+VX高HeritrixJavaVX中其它一些開源爬蟲匯總:WebSPHINXWebSPHINX是一個Java類包和Web爬蟲的交互式開發(fā)環(huán)境。Web爬蟲(也叫作機器人或蜘蛛)是可以自動瀏覽與處理Web頁面的程序。WebSPHINX由兩部分組成:爬蟲工作平臺和WebSPHINX類包。不得用于商業(yè)用途僅供個人參考WebLechW
14、ebLech是一個功能強大的Web站點下載與鏡像工具。它支持按功能需求來下載web站點并能夠盡可能模仿標準Web瀏覽器的行為。WebLech有一個功能控制臺并采用多線程操作。AraleArale主要為個人使用而設計,而沒有像其它爬蟲一樣是關注于頁面索引。Arale能夠下載整個web站點或來自web站點的某些資源。Arale還能夠把動態(tài)頁面映射成靜態(tài)頁面。J-SpiderJ-Spider:是一個完全可配置和定制的WebSpider引擎.你可以利用它來檢查網(wǎng)站的錯誤(內(nèi)在的服務器錯誤等),網(wǎng)站內(nèi)外部鏈接檢查,分析網(wǎng)站的結構(可創(chuàng)建一個網(wǎng)站地圖),下載整個Web站點,你還可以寫一個JSpider插件
15、來擴展你所需要的功能。spindlespindle是一個構建在Lucene工具包之上的Web索引/搜索工具.它包括一個用于創(chuàng)建索引的HTTPspider和一個用于搜索這些索引的搜索類。spindle項目提供了一組JSP標簽庫使得那些基于JSP的站點不需要開發(fā)任何Java類就能夠增加搜索功能。ArachnidArachnid:是一個基于Java的webspider框架.它包含一個簡單的HTML剖析器能夠分析包含HTML內(nèi)容的輸入流.通過實現(xiàn)Arachnid的子類就能夠開發(fā)一個簡單的Webspiders并能夠在Web站上的每個頁面被解析之后增加幾行代碼調(diào)用。Arachnid的下載包中包含兩個spi
16、der應用程序例子用于演示如何使用該框架。LARMLARM能夠為JakartaLucene搜索引擎框架的用戶提供一個純Java的搜索解決方案。它包含能夠為文件,數(shù)據(jù)庫表格建立索引的方法和為Web站點建索引的爬蟲。JoBoJoBo是一個用于下載整個Web站點的簡單工具。它本質(zhì)是一個WebSpider。與其它下載工具相比較它的主要優(yōu)勢是能夠自動填充form(如:自動登錄)和使用cookies來處理session。JoBo還有靈活的下載規(guī)則(如:通過網(wǎng)頁的URL,大小,MIME類型等)來限制下載。snoics-reptilesnoics-reptile是用純Java開發(fā)的,用來進行網(wǎng)站鏡像抓取的工具
17、,可以使用配制文件中提供的URL入口,把這個網(wǎng)站所有的能用瀏覽器通過GET的方式獲取到的資源全部抓取到本地,包括網(wǎng)頁和各種類型的文件,如:圖片、flash、mp3、zip、rar、exe等文件。可以將整個網(wǎng)站完整地下傳至硬盤內(nèi),并能保持原有的網(wǎng)站結構精確不變。只需要把抓取下來的網(wǎng)站放到web服務器(如:Apache)中,就可以實現(xiàn)完整的網(wǎng)站鏡像。Web-HarvestWeb-Harvest是一個Java開源Web數(shù)據(jù)抽取工具。它能夠收集指定的Web頁面并從這些頁面中提取有用的數(shù)據(jù)。Web-Harvest主要是運用了像XSLT,XQuery,正則表達式等這些技術來實現(xiàn)對text/xml的操作。s
18、piderpyspiderpy是一個基于Python編碼的一個開源web爬蟲工具,允許用戶收集文件和搜索網(wǎng)站,并有一個可配置的界面。TheSpiderWebNetworkXoopsModTeampiderWebNetworkXoopsMod是一個Xoops下的模塊,完全由PHP語言實現(xiàn)。不得用于商業(yè)用途僅供個人參考僅供個人用于學習、研究;不得用于商業(yè)用途。Forpersonaluseonlyinstudyandresearch;notforcommercialuse.Nurfurdenpers?nlichenfurStudien,Forschung,zukommerziellenZweckenverwendetwerden.Pourl'etudeetlarechercheuniquementddesfinspersonnelles;pasddesfinscommerciales.toJibkoAJiajiiOAeTKqTOpBi(enojib3guroiTHO叵yqehumcacji,ea0BHaH0HOJi>KHbiuicnojib3OBaTbCflbKOMMepnecKHxuejiax.以下無正文不得用于商業(yè)用途僅供個人用于學習、研究;不得用于商業(yè)用途。Forpersonaluseonlyinstudyandresearch;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中專升大專的試題及答案
- 2019-2025年軍隊文職人員招聘之軍隊文職教育學題庫綜合試卷A卷附答案
- 2019-2025年消防設施操作員之消防設備中級技能考前沖刺試卷A卷含答案
- 2022-2023學年廣東省廣州二中教育集團七年級(下)期中數(shù)學試卷(含答案)
- 遺產(chǎn)繼承遺產(chǎn)分配爭議解決合同(2篇)
- 采購與分包責任劃分合同(2篇)
- 2023年云南公務員《行政職業(yè)能力測驗》試題真題及答案
- 奢侈品知識培訓課件圖片
- 2025年法律知識競賽搶答題庫及答案(共70題)
- 急診科急救知識培訓課件
- 2025年中考百日誓師大會校長發(fā)言稿:激揚青春志 決勝中考時
- YY/T 1860.1-2024無源外科植入物植入物涂層第1部分:通用要求
- 中央2025年全國婦聯(lián)所屬在京事業(yè)單位招聘93人筆試歷年參考題庫附帶答案詳解
- 人教版高中物理選擇性必修第二冊電磁波的發(fā)射與接收課件
- 《建筑冷熱源》全冊配套最完整課件1
- 廣州2025年廣東廣州市番禺區(qū)小谷圍街道辦事處下屬事業(yè)單位招聘5人筆試歷年參考題庫附帶答案詳解
- 2025年春新人教版生物七年級下冊全冊教學課件
- 【物理】《跨學科實踐:制作微型密度計》(教學設計)-2024-2025學年人教版(2024)初中物理八年級下冊
- 2024年湖南高速鐵路職業(yè)技術學院高職單招數(shù)學歷年參考題庫含答案解析
- 封條模板A4直接打印版
- 單細胞蛋白論文
評論
0/150
提交評論