在Eclipse中的配置Heritrix 1.14.3

關於搜索引擎書籍中國目前比較少,有過這方面瞭解的 朋友一般都看過2007年人民郵電出版 lucene 2.0+heritrix 這本書吧。本人感覺還不錯,理論知識較少點,具體步驟還比較詳細。適合初學者。

      簡單介紹下heritrixheritrix 是Java編寫的開源爬蟲。 擴展性比較好,但是配置適合的採集規則,比較複雜難理解。適合學習和研究。

      此書中的heritrixeclipse 中的配置 寫的不夠詳細,我把自己成功的配置貢獻給大家。

<1>首先要去官網下載最新版本的heritrix 。下載地址爲:

http://sourceforge.net/project/showfiles.php?group_id=73833&package_id=73980

選擇文件注意爲zip後綴格式的,gz格式爲 linux下文件。

選擇這兩個文件heritrix -1.14.3-src.zip    heritrix -1.14.3.zip  下載。

<2>

       把下載好的文件解壓。

<3>

       配置過程:

1、新建Java Project工程

Eclipse 中 新建一個Java Project工程(注意:一定是Java Project的工程,不是Web Project工程),工程名稱爲Heritrixproject。(名字可隨便起)

以我的爲例,對應地,工程 Heritrixproject在本地磁盤目錄D:/eclipse -SDK-3.2.1- win32/workspace下面。

可以在目錄D:/eclipse -SDK-3.2.1-win32/workspace/Heritrixproject 下面看到:兩個工程屬性文件.classpath和.project、兩個文件目錄bin和src。

刪除掉兩個文件目錄bin和src。

2、向新建的Java Project添加Heritrix -1.14.3文件

(1) 將目錄E:/Heritrix /heritrix -1.14.3-src /heritrix -1.14.3/src/java/下面的三個目錄:org、com、st一起拷貝到 新建工程Heritrixproject目錄下面(絕對路徑爲D:/eclipse -SDK- 3.2.1-win32/workspace/Heritrixproject)。

(2) 將目錄E:/Heritrix /heritrix -1.14.3-src /heritrix -1.14.3/src/conf/下面的:三個目錄(包括:modules、 profiles、selftest),以及四個文件(包括:heritrix .properties、 jmxremote.password.template、heritrix .cacerts、 jndi.properties)一起拷貝到新建的工程Heritrixproject目錄下面。

(3) 將目錄E:/Heritrix /heritrix -1.14.3-src /heritrix -1.14.3/src/resources/下面的三個文件(包 括:arcMetaheaderBody.xsl、README.txt,其中README.txt沒有用處是顯而易見的)拷貝到新建的工程 Heritrixproject目錄下。

(4) 將目錄E:/Heritrix /heritrix -1.14.3 /heritrix -1.14.3/下面的webapps目錄拷貝到新建工程 Heritrixproject目錄下面(絕對路徑爲D:/eclipse -SDK-3.2.1-win32/workspace/Heritrix -1.14.3),這裏,webapps目錄下面有兩個WAR包(即 admin.war和selftest.war)。

(5)將E:/Heritrix /heritrix -1.14.3 /heritrix -1.14.3/下的lib文件夾拷貝到工程下。

3、修改新建的Java Project工程的配置文件

(1) 打開目錄D:/eclipse -SDK-3.2.1-win32/workspace/Heritrixproject 下面的.classpath文件,可以看到共有下面6行:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse .jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>

可以看到,新建Java Project工程之後,src是資源目錄,所以在Eclipse 開發平臺上,在src下面 新建的資源目錄呈包結構組織。kind屬性指定工程中顯示的資源目錄,path指定了在該path(Eclipse 默 認爲src)下的資源目錄都呈包結構組織。

將上面的內容做很大的修改,修改內容如下所示:(注意:這個地方里面的lib下的jar就是拷 貝到工程下lib裏面的jar。如果你用的最新版本的可能與這個jar文件不一樣,這個你就要做相應的修。此時的最新版本爲heritrix -1.14.3 )

 

<?xml version="1.0" encoding="UTF-8"?>

<classpath>

<classpathentry kind="src" path=""/>

<classpathentry kind="con" path="org.eclipse .jdt.launching.JRE_CONTAINER"/>

<classpathentry kind="lib" path="lib/ant-1.6.2.jar"/>

<classpathentry kind="lib" path="lib/bsh-2.0b4.jar"/>

<classpathentry kind="lib" path="lib/commons-cli-1.0.jar"/>

<classpathentry kind="lib" path="lib/commons-codec-1.3.jar"/>

<classpathentry kind="lib" path="lib/commons-collections-3.1.jar"/>

<classpathentry kind="lib" path="lib/commons-httpclient-3.1.jar"/>

<classpathentry kind="lib" path="lib/commons-io-1.3.1.jar"/>

<classpathentry kind="lib" path="lib/commons-lang-2.3.jar"/>

<classpathentry kind="lib" path="lib/commons-logging-1.0.4.jar"/>

<classpathentry kind="lib" path="lib/commons-net-1.4.1.jar"/>

<classpathentry kind="lib" path="lib/commons-pool-1.3.jar"/>

<classpathentry kind="lib" path="lib/dnsjava-2.0.3.jar"/>

<classpathentry kind="lib" path="lib/fastutil-5.0.3-heritrix -subset-1.0.jar"/>

<classpathentry kind="lib" path="lib/itext-1.2.0.jar"/>

<classpathentry kind="lib" path="lib/jasper-compiler-tomcat-4.1.30.jar"/>

<classpathentry kind="lib" path="lib/jasper-runtime-tomcat-4.1.30.jar"/>

<classpathentry kind="lib" path="lib/javaswf-CVS-SNAPSHOT-1.jar"/>

<classpathentry kind="lib" path="lib/je-3.3.75.jar"/>

<classpathentry kind="lib" path="lib/jetty-4.2.23.jar"/>

<classpathentry kind="lib" path="lib/jets3t-0.5.0.jar"/>

<classpathentry kind="lib" path="lib/junit-3.8.2.jar"/>

<classpathentry kind="lib" path="lib/jericho-html-2.6.jar"/>

<classpathentry kind="lib" path="lib/libidn-0.5.9.jar"/>

<classpathentry kind="lib" path="lib/mg4j-1.0.1.jar"/>

<classpathentry kind="lib" path="lib/poi-2.0-RC1-20031102.jar"/>

<classpathentry kind="lib" path="lib/poi-scratchpad-2.0-RC1-20031102.jar"/>

<classpathentry kind="lib" path="lib/servlet-tomcat-4.1.30.jar"/>

<classpathentry kind="output" path=""/>

</classpath>

其中:

上面的<classpathentry kind="src" path=""/>中,指定src爲"",這表示,只要在該工程的根目錄下面建的目錄資源都呈現表結構組織;

上面的kind爲lib,對應的就是我們拷貝到工程 目錄下面的lib,path的值就是該lib目錄下面的所有的jar文件。

4.配置外部jar包,

      切換到eclipse 窗口下,刷新下工程。

右鍵單擊工程,選擇【Build Path】—> 【Add External Archives】在彈出的窗口中選擇添加目錄heritrix -1.12.1-src /heritrix -1.12.1/lib。

再次刷新下工程。沒有錯誤提示了。

5、修改heritrix .properties屬性文件

打開heritrix .properties 屬性文件,可以看到默認情況下,Heritrix -1.14.3的屬性文件如下所示:

##############################################################################
# H E R I T R I X P R O P E R T I E S
##############################################################################

# Properties with 'heritrix .' or 'org.archive.crawler.' prefix get loaded
# into System.properties on startup so available via System.getProperties.

# Version is filled in by the maven.xml pregoal. It copies here the project
# currentVersion property.
heritrix .version = @VERSION@

# Location of the heritrix jobs directory.
heritrix .jobsdir = jobs

# Default commandline startup values.
# Below values are used if unspecified on the command line.
heritrix .cmdline.admin = 
heritrix .cmdline.port = 8080
heritrix .cmdline.run = false
heritrix .cmdline.nowui = false
heritrix .cmdline.order =
heritrix .cmdline.jmxserver = false
heritrix .cmdline.jmxserver.port = 8081

上面四行紅色標識的代碼行,一般來說,需要修改。

第一行,heritrix .version指定了Heritrix 的 版本號,因爲我們測試的是版本號爲1.14.3,修改爲:

heritrix .version = 1.14.3

第二行,heritrix .jobsdir指定了Heritrix 在 執行抓取任務時,抓取到的內容存放的目錄,默認在工程下面的jobs目錄下面。

第三行,heritrix .cmdline.admin指定了登錄WebUI時使用的帳號,默認爲空,可以自己隨 意設定,設定需要按照一定的格式(用戶名:密碼),我們修改爲:

heritrix .cmdline.admin = admin:admin

其中,用戶名和密碼使用“:”分隔。

第四行,heritrix .cmdline.port指定了運行Heritrix 後 臺程序,監聽的WebUI使用的端口號,默認爲8080端口,可以設置一個當前沒有佔用的端口號,比如我們修改爲:

heritrix .cmdline.port = 9090

、啓動Heritrix 後 臺程序

回到Eclipse 平 臺窗口,找到新建的Java Project工程Heritrixproject中,資源包org.archive.crawler下面的Java類文件Heritrix .java,右鍵單擊Heritrix .java 文件,選擇【Run As】—> 【Java Application】選項,便看見Heritrix 後 臺已經啓動了,在Eclipse 控制檯【Console】中可以看到啓動過程的詳細信息,如 下所示:

7、登錄WebUI

現在,可以成功登錄WebUI,設置抓取任務了。

在瀏覽器地址欄中鍵入地址鏈接 http://localhost:9090 ,可以看到WebUI登錄界面.

至此heritrix 的 配置就完成了,以後就要開始抓起信息,後面我還會把heritrix 的抓取配置分享給大家。

 

補充幾點配置經驗:

進入網頁運行時有幾個重要的job setting,是我這兩天的體驗
【http- headers】:user-agent 爲瀏覽器名/版本+...+heritrix 版 本+....+本機ip(估計可以算便填一個)

【e-mail】: 隨便填一個

【frontier】:retry- delay-seconds與max-retries兩項數值改小,以免碰上壞鏈接會卡死
          Modules中的Writers改成MirrorWriterProcessor,這樣網頁以鏡像方式存儲

發佈了26 篇原創文章 · 獲贊 5 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章