【Heritrix基础教程之1】在Eclipse中配置Heritrix
一、新建項目并將Heritrix源碼導入
1、下載heritrix-1.14.4-src.zip和heritrix-1.14.4.zip兩個壓縮包,并解壓,以后分別簡稱SRC包和ZIP包;
2、在Eclipse下新建Java項目,取名Heritrix.1.14.4;
3、復制SRC包下面src/java文件夾下org和st兩個文件夾到項目中的src包下;
4、復制SRC包下src下conf文件夾到項目根目錄;
5、復制SRC包下lib文件夾到項目根目錄;
6、復制ZIP包下webapps文件夾到項目根目錄;
7、修改項目下conf下heritrix.properties文件
8、在項目上右鍵選擇構建路徑->配置構建路徑->庫選項卡->添加Jar,將lib目錄下的所有.jar文件選中,點擊完成!
9、在項目/src/org.archive.crawler包下Heritrix.java上點擊右鍵選Run as->Run Configurations->Classpath->User Entries->Advanced->Add Folder->選擇項目下conf文件夾,最后點擊Run
然后,就可以從http://127.0.0.1:8080/中登錄系統。
在Liunx上運行heritrix
(1)export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/home/jediael/Heritirx1.14.4/lib/*:/home/jediael/Heritirx1.14.4/bin/*:/home/jediael/Heritirx1.14.4/conf/*
(2)cp -r webapps/ bin/
(3)cd bin
?(4)java org.archive.crawler.Heritrix
注意此種方法只能在本機上通過127.0.0.1來進行訪問,因為代碼中寫了:
? ? ? ? final String ROOTURI = "127.0.0.1:" + Integer.toString(port);
? ? ? ? String selfTestUrl = "http://" + ROOTURI + '/';
即只用于本機測試。
二、配置爬蟲任務并開始下載
1、登錄系統 admin/admin
2、點擊Jobs--->create new job---->with defaults
每次新建一個job,都等于創建一個新的order.xml。在Heritrix中,每個任務對應一個order.xml,用于描述任務的屬性。它用于指定Job的Processor類、Frontier類、Fetcher類、抓取時的最大線程數、最長超時等屬性。
3、輸入基本信息,注意seeds中最后必須有一個"/"
4、選擇下邊的"Modules",進入Module配置頁(Heritrix的擴展功能都是通過模塊概念實現的,可以實現自己的模塊完成自己? 想要的功能)。其中第一項 "Select Crawl Scope" 使用默認的"org.archive.crawler.deciderules.DecidingScope"? ? ?。倒數第三項 "Select Writers " 刪除默認的 "org.archive.crawler.writer.ARCWriterProcessor" ,后添加? "org.archive.crawler.writer.MirrorWriterProcessor",這樣執行任務的時候抓取到的頁面會以鏡像的方式放在本地的?目錄結構中,而不是生成ARC存檔文件。
?
5、選擇"Modules"右邊的"Submodules",在第一項內容中 "crawl-order ->scope->decide-rules->rules" 刪除掉其中的 "acceptIfTranscluded" (org.archive.crawler.deciderules.TransclusionDecideRule) 的這一項抓取作用域的?規則。否則當Http請求返回301或者302時Heritrix會去抓取其他域下的網頁。?
?
6、在WUI的第二行導航欄中選擇"Settings"進入Job的配置頁面,其中主要修改兩項:http-headers 下的user-agent 和from,他們的"PROJECT_URL_HERE" 和 "CONTACT_EMAIL_ADDRESS_HERE" 替換為自己的內容?("PROJECT_URL_HERE" 要以 "http://" 開頭)
?
7、在WUI的第二行導航欄中選擇最右邊的"Submit job"
?
8、在WUI的第一行導航欄中選擇第一項的"Console",點擊"Start",抓取任務正式開始,時間長短有網絡狀況和所抓取網站的?深度有關。點擊"refresh"可以監控下載情況
還可點擊logs等觀察日志。
9、默認情況下,文件下載至"項目位置\jobs"。
三、一些說明
1、創建項目后,Heritrix中報錯:sun.net.www.protocol.file.FileURLConnection,原因為sun包是受保護的包,默認只有sun公司的軟件才能使用。Eclipse會報錯,把對保護使用waring就可以了。
步驟如下:Windows -> Preferences -> Java -> Compiler -> Errors/Warnings-> Deprecated and trstricted API -> Forbidden reference (access rules): -> change to warning
2、在進入module配置頁,若發現所有的配置可以刪除,移動,但是不可以添加和修改,沒有可選的下拉框。原因為配置文件找不到,應該在classpath標簽頁添加配置文件的路徑。
即第一部分的第9步。
3、問題: thread-10 org.archive.util.ArchiveUtils.<clinit>() TLD list unavailable
java.lang.NullPointerException
at java.io.Reader.<init>(Unknown Source)
at java.io.InputStreamReader.<init>(Unknown Source)
at org.archive.util.ArchiveUtils.<clinit>(ArchiveUtils.java:759)
解決:將heritrix-1.14.4-src.zip解壓中src/resources/org/archive/util中tlds-alpha-by-domain.txt文件復制到工程中org.archive.util包下。
四、Modules中的一些配置項
在Modules界面中,共有8個選項需要配置,包括以下
1、Crawl Scope
用于配置抓取范圍。選項請見下圖。
根據名稱可以直觀的知道抓取范圍,默認是BroadScope,即不限制范圍。
從下拉框中選擇某一項后,點擊chang按鍵,則下拉框上面的解釋會相應的發生變化,描述當前選項的特征。
2、URI Frontier
用于確定待抓取的url的順序,亦即相應的算法。默認項為BdbFrontier。
3、Pre Processors:Processors that should run before any fetching
在抓取前,處理器對一些先決條件做的判斷。比如判斷robot.txt等信息,它是整個處理器鏈的入口。
4、Fetchers:Processors that fetch documents using various protocols
指定解釋、提取哪些類型的文件
5、Extractors:Processors that extracts links from URIs
用于提取當前獲取到文件的信息。
6、Writers:Processors that write documents to archive files
選擇保存的方式,常用的有2種:
org.archive.crawler.writer.MirrorWriterProcessor:保存鏡像,即將文件直接下載下來。
org.archive.crawler.writer.ARCWriterProcessor:以歸檔的格式下載下來,此時文件不可直接查看。此項為default模塊的默認選項。
7、Post Processors?Processors that do cleanup and feed the Frontier with new URIs
抓取后的收尾工作。
8、Statistics Tracking
用于一些統計信息。
五、Setting中的一些配置項
修改下載文件的路徑
總結
以上是生活随笔為你收集整理的【Heritrix基础教程之1】在Eclipse中配置Heritrix的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【搜索引擎Jediael开发笔记】v0.
- 下一篇: 【Heritrix基础教程之2】Heri