在配置好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新建抓取任務的例子。