Heritrix 介紹!~

來源:互聯網
上載者:User
原帖地址:http://www.iteye.com/topic/84206
一、架構介紹
 公司最近項目要用到全文檢索索引,檢索對象是一些網站的網頁內容,要使用到網路爬蟲工具。       目前技術選型對象主要有兩個:Heritrix 和 Nutch。二者均為Java開源架構,Heritrix 是 SourceForge上的開源產品,Nutch為Apache的一個子項目,它們都稱作網路爬蟲/蜘蛛( Web Crawler),它們實現的原理基本一致:深度遍曆網站的資源,將這些資源抓取到本地,使用的方法都是分析網站每一個有效URI,並提交Http請求,從而獲得相應結果,產生本地檔案及相應的日誌資訊等。 下面是二者的介紹,摘自網路:
Heritrix 是個 "archival crawler" -- 用來擷取完整的、精確的、網站內容的深度複製。包括擷取映像以及其他非常值內容。 抓取並儲存相關的內容。對內容來者不拒,不對頁面進行內容上的修改。重新爬行對相同的URL不針對先前的進行替換。爬蟲通過Web使用者介面啟動、監控、調整,允許彈性的定義要擷取的URL。
二者的差異:
  • Nutch 只擷取並儲存可索引的內容。Heritrix則是照單全收。力求儲存頁面原貌
  • Nutch 可以修剪內容,或者對內容格式進行轉換。
  • Nutch 儲存內容為資料庫最佳化格式便於以後索引;重新整理替換舊的內容。而Heritrix 是添加(追加)新的內容。
  • Nutch 從命令列運行、控制。Heritrix 有 Web 控制管理介面。
  • Nutch 的定製能力不夠強,不過現在已經有了一定改進。Heritrix 可控制的參數更多。
  二、關於Heritrix使用的初步總結  

目前對 Heritrix做了初步選型測試,有了一些總結: 

1.關於安裝: 

      目前的版本號碼為1.12.1,官網地址為  http://crawler.archive.org/。常規安裝,即解壓到相關目錄,之後配置系統內容變數"HERITRIX_HOME"到該解壓目錄(Java環境已經配置好)。 

 

2.安裝的後續工作: 

      將 %HERITRIX_HOME%\heritrix-1.12.1.jar 解壓到臨時目錄,拷貝其中的profiles目錄到 %HERITRIX_HOME%\conf\目錄下,用來解決Heritrix 關於的Profile預設配置的一個Bug。 

 

3.組態管理帳戶: 

      拷貝 %HERITRIX_HOME%\conf\jmxremote.password.template 到 %HERITRIX_HOME%\下,並且重新命名為"jmxremote.password"。之後編輯該檔案內容關於密碼的部分:monitorRole  @PASSWORD@         monitorRole  admin
controlRole  @PASSWORD@  ==>  controlRole  admin      修改完畢之後,儲存該檔案。並且需要將該檔案的屬性改為“唯讀”。然後有很重要的一步:在該檔案jmxremote.password的屬性視窗中查看“安全”標籤,該標籤下的第一項“組或使用者名稱稱”下要確認該檔案的所有權應該只隸屬於你當前的系統使用者,而不應該是某一個使用者組(例如Administrators),這應該是Heritrix安全機制的一個Bug。否則運行Heritrix的時候會報許可權錯誤,需要你修改jmxremote.password檔案的屬性為“唯讀”,但是其實已經做了該項改動。 

  4.運行Heritrix: 

      CMD定位到 %HERITRIX_HOME%\bin,執行 "heritrix --admin=admin:admin" 命令,即可啟動 heritrix,有一點需要注意,heritrix預設使用8080連接埠,要保證系統連接埠沒有衝突。之後便可以訪問
http://127.0.0.1:8080 使用 heritrix 提供的WUI,即Web管理端。並且使用"admin/admin"登入。      該管理端提供了Heritrix預設提供的所有配置功能,並且可以建立一個Job並且執行該Job抓取網站。 

 

5.一個簡單的Job:      Heritrix提供的配置功能非常豐富,但是也很複雜,剛開始的時候很難正確的建立並且執行一個Job去抓取網站,自己閱讀了大部分的Heritrix使用者文檔和多次嘗試之後,總結了一個簡單的建立執行Job的用例,該用例為 抓取 www.baidu.com 下的網頁,但子域(如
news.baidu.com)不抓取
,步驟如下,可供參考:
(1) WUI的上邊的導覽列選擇"Jobs",呈現的第一項是"Create New Job",選擇第四小項"With defaults"。輸入項的前兩項     Name和Description隨意,Seeds非常重要:http://www.baidu.com/ 注意最後一個反斜線必須。 (2) 選擇下邊的"Modules",進入Module配置頁(Heritrix的擴充功能都是通過模組概念實現的,可以實現自己的模組完成自己     想要的功能)。其中第一項 " Select Crawl Scope" 使用預設的 "org.archive.crawler.deciderules.DecidingScope"     。倒數第三項 " Select Writers " 刪除預設的 "org.archive.crawler.writer.ARCWriterProcessor" ,後添加     "org.archive.crawler.writer.MirrorWriterProcessor",這樣執行任務的時候抓取到的頁面會以鏡像的方式放在本地的     目錄結構中,而不是產生ARC封存檔案。 (3) 選擇"Modules"右邊的"Submodules",在第一項內容中 " crawl-order -> scope-> decide-rules-> rules" 刪除掉其     中的 "acceptIfTranscluded" ( org.archive.crawler.deciderules.TransclusionDecideRule) 的這一項抓取範圍的     規則。否則當Http請求返回301或者302時Heritrix會去抓取其他域下的網頁。  (4) 在WUI的第二行導覽列中選擇"Settings"進入Job的配置頁面,其中主要修改兩項: http-headers
下的user-agent 和      from,他們的"PROJECT_URL_HERE" 和 "CONTACT_EMAIL_ADDRESS_HERE" 替換為自己的內容    ("PROJECT_URL_HERE" 要以 "http://" 開頭) (5) 在WUI的第二行導覽列中選擇最右邊的"Submit job" (6) 在WUI的第一行導覽列中選擇第一項的"Console",點擊"Start",抓取任務正式開始,時間長短有網路狀況和所抓取網站的     深度有關。
     按照如上步驟應該可以正確的執行一次網站的抓取任務,抓取頁面會存放在你的工作目錄下的mirror檔案夾內。關於Job的建立和執行過程中的各種設定可以在使用者手冊中查到,都有詳細的說明。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.