在配置好heritrix後,可以輸入形如:http://localhost:8080的伺服器IE地址,進入UI介面登陸。則可開始建立網頁爬行抓取任務。
1.首先啟動Heritrix後台監聽程式,然後登入WebUI.
成功登入WebUI後,初始介面:
2. 選擇上面一排導覽功能表中的“Jobs”連結,開始建立一個抓取任務,:
3.建立一個Job(Create New Job)有四種選擇方式:Based On Existing Job、Based On a recovery、Based On a profile、With Default。我們選擇第三種方式,點擊“Based On a profile”連結,:
4.繼續點擊 “default“連結,這時才真正開始配置一個建立的抓取任務了,:
其中,“Name of a new job”指定了一個Job的名稱,可以任意選取(我選擇的名稱為Dev);Description是關於這個Job的描述,用來為以後抓取提供參考(Dev website);Seeds是指要抓取的網站的種子頁面,以該Seeds為起始抓取點,可以填寫一個URL,也可以填寫多個,填寫多個的話,要保證每個URL在一行,例如以填寫下面三個種子頁面為例:
http://crawler.archive.org
http://portals.apache.org
http://docs.huihoo.com
:
5.接著,點擊文本域下方的“Modules”按鈕,對抓取任務的處理鏈進行配置,開啟頁面:
在該版本的Heritrix-1.14.4,建立一個抓取任務的時候,設定處理鏈頁面預設給定了一種配置,可以根據具體需要進行詳細配置(或者在詞基礎上進行修改)。
6.配置抓取任務的處理鏈,可以配置(添加、刪除)如下8項:
Select Crawl Scope
Select URI Frontier
Select Pre Processors
Select Fetchers
Select Extractors
Select Writers
Select Post Processors
Select Statistics Tracking
而且,只需要從對應項的下拉式清單單中選擇向對應的項即可,這裡,選擇每項可以非常直觀地從列表中的“包名+類名”選擇匹配的選項,以選擇一個Writer(用於配置抓取到的內容以怎樣的方式寫入本地磁碟)為例:
選中後,點擊後面的“Add”按鈕,即可設定,:
可以通過設定選項後面的Down、Up、Remove等連結進行操作,Info連結是查看具體資訊的。各個選項是有順序的,因為他們是一個抓取鏈。設定完畢後,點擊上方或者下方導覽功能表
中的“Submitmodules”連結提交處理鏈配置,然後可以看到一個個“回”字形的藍色方框不斷嵌套,顯示了剛才配置的詳細資料,:
在此,仍然可以修改對處理鏈的配置。接著,要對運行時的參數進行配置,點擊
中的“Settings”連結,進入配置運行時參數頁面:
可以拖動捲軸,對很多運行時參數進行配置,具體配置可以參考相關文檔手冊,這裡可以設定一下如下所示的http-headers選項,預設配置如下:
可以點擊藍色的“?”查看該項的提示資訊。要根據自己的具體情況進行配置:
user-agent主要是指運行Heritrix的使用者的配置,即使用者的機器配置。首先是瀏覽器的選擇,比如IE/7.0;其中 @VERSION@是指使用Heritrix的版本號碼,這裡應該是1.12.1;最後面的PROJECT_URL_HERE是指要搜尋的地址,比如http://192.168.151.201。
from是指一個Email連絡方式,可以輸入一個Email地址,例如(隨意即可,符合e_mail形式就好)。
其它可以使用預設設定(如果要詳細配置可以參考相關文檔手冊)。這時可以選擇導覽功能表
中的“Submit job”連結,提交一個抓取任務,頁面跳轉到如下所示頁面:
可以看到,上方的紅色粗體的“Job created”提示資訊,這時表示一個抓取任務已經建立成功(還沒有啟動給任務)。
7.接下來,就要啟動這個抓取任務。點擊導覽功能表
中的“Console”連結,回到WebUI控制台,:
該頁面顯示當前抓取器的狀態為Crawler Status: HOLDING JOBS,掛起狀態。還顯示了Jobs、Memory、Alert的資訊。
啟動一個抓取任務。點擊“Start”連結,即可啟動,開始執行抓取任務。頁面:
點擊“Refresh”連結可以看到即時抓取的進度資訊。注意,這個百分數的進度是不準的的,開始啟動的時候需要預先載入,是一個近似的百分比。
由於大部分使用預設的處理鏈的配置,所以抓取的範圍比較廣泛,比如HTML檔案、SWF檔案、CSS檔案等等,所以對指定的一個種子頁面,抓取的資料量很大,速度也是很慢的。
8.另外,選擇中頁面也有很大的關係,比如我們選擇的docs.huihoo.com種子頁面,這是一個很寬泛的種子頁面,抓取後,該種子頁面的子頁面有很多很多。
過一段時間後,點擊“Refresh”連結可以看到一個時刻的抓取進度資訊,:
可見,已經抓取到了很多頁面,並下載到本地了。
當啟動一個抓取任務時,可以在工程的目錄xx\workspace\Heritrix-xx下面看到產生了一個jobs檔案夾,開啟該檔案夾可以看到一個新的檔案夾:Dev-20080404103345484,就是剛才建立的那個抓取任務的名稱。開啟該目錄,可以看到一些設定檔夾,:
開啟mirror目錄,可以看到抓取到URL目錄,:
其中目錄docs.huihoo.com下可以看到抓取了很多內容,:
9.如果啟動一個抓取任務的過程出現異常,則可以在Eclipse控制台上看到異常資訊。比如設定user-agent的時候忘記了這個設定,則啟動抓取任務的時候則出現異常:
04/04/2008 10:30:52 +0000 嚴重 org.archive.crawler.framework.CrawlController initialize On crawl: Dev You must set the User-Agent and From HTTP header values to acceptable strings.
User-Agent: [software-name](+[info-url])[misc]
From: [email-address]
org.archive.crawler.framework.exceptions.FatalConfigurationException: unacceptable user-agent or from (Reedit your order file).
at org.archive.crawler.datamodel.CrawlOrder.checkUserAgentAndFrom(CrawlOrder.java:436)
at org.archive.crawler.framework.CrawlController.initialize(CrawlController.java:335)
at org.archive.crawler.admin.CrawlJob.setupForCrawlStart(CrawlJob.java:846)
at org.archive.crawler.admin.CrawlJobHandler.startNextJobInternal(CrawlJobHandler.java:1142)
at org.archive.crawler.admin.CrawlJobHandler$3.run(CrawlJobHandler.java:1125)
at java.lang.Thread.run(Thread.java:595)
org.archive.crawler.framework.exceptions.InitializationException: On crawl: Dev You must set the User-Agent and From HTTP header values to acceptable strings.
User-Agent: [software-name](+[info-url])[misc]
From: [email-address]
at org.archive.crawler.framework.CrawlController.initialize(CrawlController.java:383)
at org.archive.crawler.admin.CrawlJob.setupForCrawlStart(CrawlJob.java:846)
at org.archive.crawler.admin.CrawlJobHandler.startNextJobInternal(CrawlJobHandler.java:1142)
at org.archive.crawler.admin.CrawlJobHandler$3.run(CrawlJobHandler.java:1125)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.archive.crawler.framework.exceptions.FatalConfigurationException: unacceptable user-agent or from (Reedit your order file).
at org.archive.crawler.datamodel.CrawlOrder.checkUserAgentAndFrom(CrawlOrder.java:436)
at org.archive.crawler.framework.CrawlController.initialize(CrawlController.java:335)
... 4 more
而且,在WebUI控制台上也可以看到提示資訊,例如Alerts:1(1 new)表示有一個異常或者錯誤,即“Alerts”連結就可以查看異常資訊。
正常啟動Alerts資訊為Alerts:no alert。
出現異常後,可以重新設定抓取任務。
這就是一個簡單的使用Heritrix建立抓取任務的例子。