準備用Heritrix來做個小的搜尋引擎,以下是我在配置Heritrix的過程中遇到的各種問題,通過幾個小時的查找和分析,終于把Heritrix的單獨配置和在eclipse下的配置做成功了。我在配置過程中遇到問題的時候,發現網上關于這方面的資料比較少,很多人都遇到過相同的問題,但沒有人具體詳細的給予解答,下面我将從網上獲得的資料和我個人的認識進行總結,希望對才開始配置Heritrix的朋友有所幫助。 當然首先得下載下傳Heritrix包。 下載下傳最新版(本人喜歡最新的)的heritrix1.14.4.zip和heritrix-1.14.4-src.zip。位址: http://sourceforge.net/projects/archive-crawler/files/archive-crawler%20(heritrix%201.x)/ 一、 安裝、配置Heritrix
1、将得到的heritrix-1.14.4.zip壓縮包直接解壓縮到某一目錄,我選擇的是F:\Heritrix。
2、然後,将 F:\Heritrix 目錄中的heritrix-1.14.4.jar檔案解壓縮,把 profiles\default 下的兩個檔案order.xml和seeds.txt複制到 F:\Heritrix\conf 目錄下。
3、以文本編輯方式打開 F:\Heritrix\conf 下的heritrix.properties檔案,在“heritrix.cmdline.admin = ” 項的後面加入你所要設定的管理者賬戶和密碼,用“:”分割,如:
heritrix.cmdline.admin = admin:admin
4、複制 F:\Heritrix\conf 下的jmxremote.password.template檔案到主目錄F:\Heritrix下,并更名為jmxremote.password。編輯此檔案, 更改最後兩行"monitorRole @[email protected]"、"controlRole @[email protected]"中的"@PAS[email protected]"為管理者密碼。如:
monitorRole admin
controlRole admin
如果順利,就可以運作了。系統自帶腳本的運作如下:
将cmd定位到 F:\heritrix\bin下,執行 "heritrix --admin=admin:admin" 指令,即可啟動 heritrix, 有一點需要注意,heritrix預設使用8080端口,要保證系統端口沒有沖突。之後便可以通路 http://127.0.0.1:8080 或 http://localhost:8080/ 使用 heritrix 提供的 WUI ,即 Web 管理端。并且使用 "admin/admin" 登入。 可能會出現的異常: 其中在Heritrix有一條異常資訊是: java.lang.ClassNotFoundException:org.archive.crawler.Heritrix. 在Dos下可能是這樣顯示:JMX password file is missing or permission not set correctly. 原因是,heritrix啟動時找不到heritrix的.Jar 包,即heritrix-1.14.4.jar。你就要看你的F:/Heritrix下有沒有這個包,沒有就加上,基本上是有的。 有的話,就要看你的環境變量中是不是設定了HERITRIX_HOME環境變量,如 果有,把它删除就解決了。 其它情況我沒有遇到,就不寫了。 二、在Eclipse中配置Heritrix 1、建立空的java項目(注意不是WEB項目),命名為heritrix; 2、把heritrix-1.14.4-src\src\java\目錄下的org、st和com檔案夾拷貝到heritrix/src目錄下; 3、把heritrix-1.14.4-src\src下的wbapps檔案夾拷貝到heritrix目錄下; 4、右擊heritrix項目,點選properties ,通過JavaBuildPath,将heritrix-1.14.4-src下的lib目錄下的所有包導入進來; 5、解壓縮heritrix-1.14.4目錄下的heritrix-1.14.4.jar檔案,把解壓後的所有檔案和檔案夾(除org、st、com檔案夾和heritrix.properties檔案外)拷貝到heritrix目錄下; 6、将heritrix-1.14.4目錄下的conf檔案夾拷貝到heritrix目錄下;并将heritrix目錄下的profiles檔案夾移入conf檔案夾中; 7、打開eclipse下的heritrix/conf/heritrix.properties檔案,找到"heritrix.cmdline.admin=",修改為“heritrix.cmdline.admin = admin:admin”; 8、Conf/jmxremote.password.template拷貝到heritrix目錄下。改名為:jmxremote.password,最後再行改成: monitorRole admin controlRole admin 9、找到org.archive.crawler包,運作Heritrix.java中的main函數。 成功提示資訊為: 09:14:07.406 EVENT Starting Jetty/4.2.23
09:14:07.656 EVENT Started WebApplicationContext[/,Heritrix Console]
09:14:07.750 EVENT Started SocketListener on 127.0.0.1:8082
09:14:07.750 EVENT Started [email protected]
Heritrix version: 1.14.4
可能會出現的異常: 1、在Heritrix.java中出現File URLConnection 紅叉; 解決辦法:将myeclipse中的compiler 屬性中的Errors/warring 中的Forbidden....選為warrning即可。 2、出現的異常 :......thread-10 org.archive.util.ArchiveUtils.<linit>( )TLD list.... 解決辦法:将 \heritrix-1.14.4-src\heritrix-1.14.4\src\resources\org\archive\util 下的文本文檔拷貝到heritrix中的org\archive\util下; 3、在eclipse中可以啟動heritrix,但在jobs->modules.jsp頁面中沒有添加(“Add”)按扭,且出現以下異常。 緻使錯誤:“無法編譯樣式表” 嚴重 thread-12 org.archive'crawler.framework.WriterPodProcessor.io.arc....... 解決辦法: 将heritrix 項目中的modulse的上一級目錄檔案添加到eclipse的classpath中。