網路爬蟲Heritrix源碼分析(一) 包介紹

來源:互聯網
上載者:User

      歡迎加入Heritrix群(QQ):10447185  , Lucene/Solr群(QQ) :  118972724

      之前說過要分享下我的爬蟲經驗,但一直找不到突破口,現在才感覺寫點東西真的很難,所以大家真的要感謝那些無私的前輩們,在網上留下的一篇篇可以指點迷津的文章。 
想了很久,還是先從Heritrix的包開始說起,然後再說類,最後講下如何加工Heritrix,也就是將其打造成自己想要的爬蟲,這裡補充下,我用的版本是1.14.3. 
   

序號 包名                                   說明
1   org.apache.commons.httpclient     封裝了apache的httpclient用於Fetch網頁內容
2 org.apache.commons.httpclient.cookie 封裝了apache的httpclient用於Fetch網頁內容,這裡主要處理Cookie
3 org.apache.commons.pool.impl 封裝了apache的httpclient用於Fetch網頁內容,還待研究
4 org.archive.crawler Heritrix程式啟動並執行入口包,如Heritrix運行可以直接抓取
5 org.archive.crawler.admin Heritrix的管理組件,比如CrawlJob表示一個抓取任務job,CrawlJobHandler管理JOB,以及日誌統計等
6 org.archive.crawler.admin.ui 服務於UI管理介面,如Job參數的設定
7 org.archive.crawler.datamodel Heritrix的資料模型包,如在Heritrix中代表一個URL的CandidateURI
8 org.archive.crawler.datamodel.credential 管理Heritrix資料模型中的憑證,如抓取某些網站需要使用者名稱和密碼
9 org.archive.crawler.deciderules Heritrix的規則包,如決定哪些URL可以抓取可以調度
10 org.archive.crawler.deciderules.recrawl 還待研究,應該是決定哪些URL需要重新抓取
11 org.archive.crawler.event 事件管理,如Heritrix的暫停、重啟、停止等
12 org.archive.crawler.extractor Heritrix的造血器,通過它抽取新的URL再次進行抓取
13 org.archive.crawler.fetcher Heritrix的擷取包,如擷取HTTP、DNS、FTP資料
14 org.archive.crawler.filter Heritrix的過濾器,如配合Rule過濾一些不要的URL
15 org.archive.crawler.framework Heritrix的架構套件,存放一些核心類,一般是父類,如Heritrix控制類CrawlController;調度器類Frontier
16 org.archive.crawler.framework.exceptions Heritrix架構異常包,通常這裡的異常拋出會導致Heritrix的停止
17 org.archive.crawler.frontier Heritrix的調度器,決定抓取哪個URL
18 org.archive.crawler.io Heritrix的IO格式包,感覺取名不合理,這裡只是定義一些格式,如統計資料的格式,錯誤記錄檔的格式
19 org.archive.crawler.postprocessor 輔助處理器包,感覺取名也不合理,這裡只是對處理URL前後進行一些處理,如URL重新導向
20 org.archive.crawler.prefetch Heritrix的前置處理器包,如確定一個URL是否已經解析了DNS
21 org.archive.crawler.processor 還沒接觸到,待研究
22 org.archive.crawler.processor.recrawl 還沒接觸到,待研究
23 org.archive.crawler.scope Heritrix抓取範圍管理,如種子
24 org.archive.crawler.selftest 管理Heritrix的Web工程self.war
25 org.archive.crawler.settings 管理Heritrix設定檔order.xml中的各項配置
26 org.archive.crawler.settings.refinements 管理Heritrix自己對資料格式的標準,如時間格式
27 org.archive.crawler.url 還沒怎麼接觸到,待研究
28 org.archive.crawler.url.canonicalize Heritrix的URL正常化,用於規範每一個URL
29 org.archive.crawler.util Heritrix用於抓取的工具包,如BDB操作工具,IO操作工具
30 org.archive.crawler.writer Heritrix的下載包,用於將抓取的URL內容寫入硬碟
31 org.archive.extractor 還沒接觸到,待研究
32 org.archive.httpclient Heritrix為結合httpclient量身打造的包,讓自身更好的擷取網頁內容
33 org.archive.io Heritrix的IO包,自己封裝的一些IO操作類
34 org.archive.io.arc 針對arc格式的IO操作包
35 org.archive.io.warc 針對warc格式的IO操作包
36 org.archive.net Heritrix擴充了java.net的包,主要擴充java.net.URI類
37 org.archive.net.md5 Heritrix對URL MD5加密包,所用不多,待研究
38 org.archive.net.rsync 還沒接觸到,待研究
39 org.archive.net.s3 還沒接觸到,待研究
40 org.archive.queue 還沒接觸到,待研究
41 org.archive.uid Heritrix ID管理,主要針對URI
42 org.archive.util 整個Heritrix的工具類
43 org.archive.util.anvl 還沒接觸到,待研究
44 org.archive.util.bdbje Heritrix對BDB的封裝
45 org.archive.util.fingerprint 還沒接觸到,待研究
46 org.archive.util.iterator Heritrix自身封裝的迭代器
47 org.archive.util.ms 還沒接觸到,待研究
48 st.ata.util 擴充的其他包,待研究            

Heritrix自己的包有48個之多,還有它匯入的第三方包也有30多個,可見其複雜性...

聯繫我們

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