本部落格屬原創文章,歡迎轉載!轉載請務必註明出處: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 |