【Heritrix基礎教程之1】在Eclipse中配置Heritrix

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   使用   ar   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, username、password及連接埠號碼

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檔案拷貝到project中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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.