一、 Heritrix的安裝與配置
1. 在Eclipse中建立Java Project,名稱為Heritrix,同時將Heritrix解壓jar包中的lib檔案夾拖放到建立的Heritrix下;並將lib檔案夾下的所有jar檔案,加到項目的classpath路徑下;
2. 將位於Heritrix原始碼檔案夾下的src\java\的org和st兩個檔案夾直接拖進Heritrix工程下的src下,如果出現編譯錯誤,要把編譯的JDK設定成1.5版本以上;
3. 將Heritrix原始碼檔案夾下的src\conf\下的所有檔案和檔案夾拖至Heritrix工程下的src內,在src內找到heritrix.properties並開啟,在“heritrix.cmdline.admin=”後邊添加使用者和密碼,格式如“admin:admin”,在登入Heritrix的管理介面時需要此使用者名稱和密碼;
4. 將Heritrix原始碼檔案夾下的src下的其他檔案夾,即除conf和java兩個檔案夾以外的所有檔案夾,拖至Heritrix項目工程下,至此,Heritrix就可以運行了,運行Heritrix,右擊Run As,選擇run configurations,Project項選擇Heritrix,Main class選擇org.archive.crawler.Heritrix,運行即可;
5. 開啟瀏覽器,並在地址欄中輸入http://localhost:8080,便可以看到Heritrix的登入介面,在Username中填入admin,在Password中填入admin,單擊Login就可以看到Heritrix控制台介面。
二、 設定Heritrix抓取任務
1. 首先要為Heritrix定製一個任務(Job),單擊Job,選擇With defaults之後,在Name of new job中輸入此次任務的名稱、描述以及種子(Seeds),種子就是Heritrix的開始抓取的頁面,通常會選取一些門戶頁面或者導航頁面作為Seeds,因為這樣的頁面裡連結很多,是某個網站的入口,從這裡實行抓取才能最大限度地遍曆整個網站,然後單擊Modules,在這個頁面中要為此次任務設定各個處理模組。
2. 在Select Crawl Scope標題下,在Crawl Scope選項中,選擇org.archive.crawler.scope.BroadScope,並單擊右邊的Change按鈕。
3. 在Select URI Frontier標題下,在URI Frontier選項中,選擇org.archive.crawler.frontier.BdbFrontier,並單擊右邊的Change按鈕。
4. 在Select Pre Processors標題下,選擇org.archive.crawler.prefetch.Preselector和org.archive.crawler.prefetch.PreconditionEnforcer,並單擊右邊的Add按鈕。
5. 在Select Fetchers標題下,選擇org.archive.crawler.fetcher.FetchDNS和org.archive.crawler.fetcher.FetchHTTP,並單擊右邊的Add按鈕。
6. 在Select Extractors標題下,選擇org.archive.crawler.extractor.ExtractorHTTP和org.archive.crawler.extractor.ExtractorHTML,並單擊右邊的Add按鈕。
7. 在Select Writers標題下,選擇org.archive.crawler.writer.MirrorWriterProcessor,並單擊右邊的Add按鈕。
8. 在Select Post Processor標題下,選擇org.archive.crawler.postprocessor.CrawlStateUpdater、org.archive.crawler.postprocessor.LinksScoper和org.archive.crawler.postprocessor.FrontierScheduler,並單擊右邊的Add按鈕。
9. 設定好Modules後,設定Settings,並單擊Settings。這裡只需要修改兩個地方,user-agent和from,可修改成任意值,全部設定好後,單擊上方的Submit Job,這時,就建立好了一個Job,單擊Console,回到控制頁面,單擊Start即可運行Heritrix。單擊Start之後,重新整理一下,就能看到運行狀態。當Heritrix運行之後,我們在Heritrix的專案檔夾下可以看到一個jobs檔案夾,開啟後便是Heritrix抓取的網頁。
三、 Heritrix源碼修改
1. 如果我們希望對Heritrix進行定製,完成更加複雜的搜尋任務,可以選擇繼承FrontierScheduler,並覆寫schedule這個方法,可以在這個方法內部加入一些對連結內容進行判斷的邏輯,以保證抓取的連結都是符合自己要求的。
在配置好了之後,如果你的種子設定的是www.shu.edu.cn,那麼在你爬去完成之後,可以參照我提供的測試war包,進行測試。
地址是:http://download.csdn.net/detail/shijiebei2009/6705663
注意,在war包中,lib下有個PreProcess.jar檔案,裡面的設定檔需要修改成你自己爬去下來的檔案路徑