剛剛進行了Heritrix的配置,參考了網上不少資料,最後終於配置成功。寫下心得:
如下有些語句直接拷貝過來的,我只是把有問題的地方,修改一下。java
新建Java Project工程
在Eclipse中新建一個Java Project工程,刪除掉工程中的兩個文件目錄bin和src(後面會自動添加)。
向新建的Java Project添加Heritrix-1.14.4文件
將目錄heritrix-1.14.4-src\src\java\下面的三個目錄:org,com,st一塊兒拷貝到新建工程目錄下面。
將目錄heritrix-1.14.4-src\src\conf\下面的:三個目錄(包括:modules、profiles、selftest),以及四個文件(heritrix.properties、jmxremote.password.template、heritrix.cacerts、jndi.properties)一塊兒拷貝到新建的工程目錄下面。
將目錄heritrix-1.14.4-src\src\resources\下面的三個文件,包括:arcMetaheaderBody.xsl等拷貝到新建的工程目錄下,會彈出已存在,直接覆蓋。
將目錄heritrix-1.14.4\下面的webapps目錄拷貝到新建工程目錄下這裏,webapps目錄下面有兩個WAR包(即admin.war和selftest.war)。
刷新工程右鍵單擊工程,將heritrix-1.14.4\下的lib文件夾拷貝到工程下。而後將文件的路徑加入工程中。
web
修改工程裏class文件中的第3行和倒數第2行爲瀏覽器
<classpathentry kind="src" path=""/>(此處將path後面的src改成空)網絡
<classpathentry kind="output" path=""/>(修改同上)
app
修改heritrix.properties屬性文件
修改heritrix.version=1.14.4,heritrix.jobsdir到抓取的數據存儲的位置(默認的job),heritrix.cmdline.admin(admin:admin)登陸帳號密碼,heritrix.cmdline.port(8888)運行的端口(此處要當心,首先肯定你本身的8888端口未被佔用,不然換其它的端口便可)。webapp
上述一切修改完後,會出現sun.net.www.protocol.file.FileURLConnection的錯誤
這是由於是sun包是受保護的包,默認爲只有sun公司的軟件才能使用,進入Windows–Preferences—Java—Compiler—Errors/Warnings— Deprecated and trstricted API— Forbidden reference (access rules):— change to warning,對受保護的包使用warning便可。
運行package org.archive.crawler包中Heritrix.java文件便可完成配置ide
在瀏覽器中輸入http://localhost:8888/即進入頁面網站
使用:
(1) 登錄後,在導航欄選擇」Jobs」,呈現的第一項是」Create New Job」,選擇第四小項」With defaults」。輸入項的前兩項Name和Description隨意,Seeds很是重要:http://www.163.com/ 注意最後一個反斜槓必須。spa
(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存檔文件。.net
(3) 選擇」Modules」右邊的」Submodules」,在第一項內容中 「crawl-order ->scope->decide-rules->rules」 刪除掉其中的 「acceptIfTranscluded」 (org.archive.crawler.deciderules.TransclusionDecideRule) 的這一項抓取做用域的規則。不然當Http請求返回301或者302時Heritrix會去抓取其餘域下的網頁。
(4) 在第二行導航欄中選擇」Settings」進入Job的配置頁面,其中主要修改兩項:http-headers 下的user-agent 和 from:
user-agent主要是指運行Heritrix的用戶的配置,即便用者的機器配置。首先是瀏覽器的選擇,好比IE/7.0;其中 @VERSION@是指使用Heritrix的版本號,這裏應該是1.14.4;最後面的PROJECT_URL_HERE是指本機地址:http://127.0.0.1。
from 改成本身的郵箱
(5) 在第二行導航欄中選擇最右邊的」Submit job」 (6) 在第一行導航欄中選擇第一項的」Console」,點擊」Start」,抓取任務正式開始,時間長短有網絡情況和所抓取網站的深度有關。