在Eclipse中配置Heritrix

來源:互聯網
上載者:User

標籤:c   style   class   blog   code   java   


一、建立項目並將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檔案

heritrix.version = <span style="color:#ff0000;">1.14.4</span># Location of the heritrix jobs directory.heritrix.jobsdir = jobs# Default commandline startup values.# Below values are used if unspecified on the command line.heritrix.cmdline.admin = <span style="color:#ff0000;">admin:admin</span>heritrix.cmdline.port = <span style="color:#ff0000;">8080</span>
主要修改 version, 使用者名稱、密碼及連接埠號碼

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/中登入系統。



二、配置爬蟲任務並開始下載

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

用於一些統計資訊。







相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.