Heritrix源碼分析(四) 各個類說明(一)

來源:互聯網
上載者:User

      本部落格屬原創文章,歡迎轉載!轉載請務必註明出處:http://guoyunsky.javaeye.com/blog/630347

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

 

      Heritrix的類的確很繁瑣,往往繼承了一層又一層,最多的繼承好像有7層。下面就一個包一個包的說明每個類的作用,由於裡面Heritrix組件分明,很多組件沒用到的同時該組件的類我也沒怎麼接觸,所以這裡會忽略一部分,如果有知道的請補充,謝謝!如果對包還有不熟悉的,可以查看我前面的文章,這裡也給出連結http://guoyunsky.javaeye.com/admin/blogs/613249

 

 1.org.archive.crawler
序號 說明
1 CommandLineParser Heritrix也可以通過CMD命令進行操作,該類用於解析CMD命令
2 Heritrix Heritrix主類,可以通過該類啟動Heritrix
3 SimpleHttpServer Heritrix Web伺服器,可以通過Web管理Heritrix
4 WebappLifecycle 封裝Servlet,如此才可以通過Web啟動Heritrix,裡面裝載Heritrix對象

 

2.org.archive.crawler.admin
序號  類  說明
1  CrawlJob  Heritrix的核心類,代表著一個抓取任務,order.xml中大部分屬性都圍繞其配置,以後會著重說明
2  CrawlJobErrorHandler  維護者一個抓取任務(CrawlJob)的錯誤記錄檔,UI中顯示的JOB錯誤就來自於它
3  CrawlJobHandler  抓取任務處理器,Heritrix可以有多個抓取任務,都由它進行管理
4  InvalidJobFileException  抓取任務檔案異常,意義不大
5  SeedRecord  記錄種子的處理記錄,如該種子重新導向到哪個URL,在seeds.txt裡面會有說明,該重新導向值就來源於它
6  StatisticsSummary  統計摘要類,所用不多
7  StatisticsTracker  Heritrix核心類,統計跟蹤器,貫穿整個Heritrix的運行,如統計抓取了多少URL,以後會著重說明

 

 

3.org.archive.crawler.admin.ui
序號 說明
1 CookieUtils Cookie工具類,主要用於訪問Cookie
2 JobConfigureUtils CrawlJob組態管理工具類,當你通過Web Ui去配置一個CrawlJob時就會用到這個類
3 RootFilter 不熟

 

 

4.org.archive.crawler.datamodel
序號 說明
1 CandidateURI Heritrix的核心類,代表著一個URL,貫穿整個抓取,與CrawlURI的區別是它還沒有通過調度器(Frontier),只有通過了調度器的URL才可能去擷取網頁內容區下載等,以後會著重說明
2 CandidateURITest CandidateURI的測試類別,比如可以用它獲知如何建立CanditeURI
3 Checkpoint Heritrix會定期備份它的資料,如日誌、正在擷取的URL內容,都是在底層定時運行,當Heritrix異常中斷可以通過它來恢複.也類似於各個資料庫的Ckeckpoint
4 CoreAttributeConstants 裝載著Heritrix的基本屬性變數名,一般是對應order.xml中的標籤名
5 CrawlHost Heiritrix的核心類,代表著一個Host,裡面主要包含網域名稱、IP。由於Heritrix可以控制抓取速度,如對一個Host的抓取速度,這個類就代表著那個Host.以後會著重說明
6 CrawlOrder Heritrix的核心類,基本上對應著order.xml的各個屬性值,除了各個組件的詳細屬性,以後會著重說明
7 CrawlServer Heritrix的核心類,也對應著一個Host,裡面裝載著一個Host的各種Heritrix資料,如統計資訊、爬蟲協議
8 CrawlSubstats 抓取統計類,主要統計抓取Url的個數、成功的個數、下載的位元組數等等
9 CrawlURI CandidateURI的子類,主要比CaidiateURI多了網頁內容指紋、所屬隊列、組件處理器等
10  CredentialStore  憑證儲存類,負責儲存各種憑證,如登陸
11  FetchStatusCodes  抓取狀態,有不同的屬性代表不同的抓取狀態,如DNS擷取成功:S_DNS_SUCCESS
12  RobotsHonoringPolicy  爬蟲協議,代表著不同的抓取策略
13  Robotstxt  爬蟲協議,用於解析robots.txt
14  ServerCache  伺服器緩衝,主要緩衝CrawlHost和CrawlServer
15 UriUniqFilter 介面,用於過濾已經抓取過的URL

 

 

5.org.archive.crawler.datamodel.credential

序號 說明
1 Credential 憑證類,代表著一個憑證,從order.xml設定檔中擷取資料
2 CredentialAvatar 代表著一個具體的憑證
3 HtmlFormCredential Credential的子類,代表著提交HTML FORM表單時所需要的憑證
4 Rfc2617Credential Credential的子類,代表著RFC2617 HTTP 認證憑證

 

 

6.org.archive.crawler.deciderules
序號 說明
1 AcceptDecideRule URL規則,表示接受
2 ConfiguredDecideRule URL規則,通過order.xml檔案中的配置來決定是否拒絕(REJECT)或接受(ACCEPT)
3 DecideRule URL規則的父類,審核一個URL是否接受(ACCEPT)、拒絕(REJECT)或放棄(PASS),通過decisionFor(Object object)方法,該方法由其子類實現
4  DecidingScope  驗證一個URL是否在範圍來決定是否接受、拒絕或放棄
5  MatchesRegExpDecideRule  通過配置的Regex來決定URL是否可接受、拒絕或放棄
6  NotMatchesRegExpDecideRule  MatchesRegExpDecideRule的子類,如果URL不匹配該正則則接受
7  PathologicalPathDecideRule  如果URL中相同目錄名超過設定檔中的個數,則拒絕,如http://www.xxx.com/a/a/a/a/a 其中a的個數超過一定限制則拒絕
8  PrerequisiteAcceptDecideRule  如果URL中有先決條件URL則接受,也就是該CandidateURI裡的pathFromSeed屬性裡含有P,表示運行該URL之前有先要啟動並執行URL
9  RejectDecideRule  URL規則,表示拒絕
10  TooManyHopsDecideRule  如果超過設定檔中的約點數(max-hops),則拒絕

 

 

7.org.archive.crawler.event
序號 說明
1 CrawlStatusListener 爬蟲監聽器,如監聽爬蟲是否在運行,是否暫停等
2 CrawlURIDispositionListener URL監聽器,如監聽URL是否失敗,是要要重新抓取等

 

 

8.org.archive.crawler.extractor
序號 說明
1 Extractor 所有抽取類的父類,用於從一個URL中抽取出新的URL
2 ExtractorCSS 從CSS中抽取出新的URL
3 ExtractorDOC 從DOC中抽取出新的URL
4 ExtractorHTML 從HTML中抽取出新的URL,Heritrix核心類
5 ExtractorHTTP 從HTTP中抽取出新的URL
6 ExtractorJS 從Javascript中抽取出新的URL
7 ExtractorPDF 從PDF中抽取出新的URL
8 ExtractorSWF 從SWF中抽取出新的URL
9 ExtractorXML 從XML中抽取出新的URL
10 HTTPContentDigest 網頁內容文摘,實際上是通過MD5或SHA1演算法將網頁內容指紋化
11 Link 連結,代表抽取出來的URL

聯繫我們

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