文章分類:互聯(lián)網(wǎng)
本博客屬原創(chuàng)文章,歡迎轉(zhuǎn)載!轉(zhuǎn)載請務(wù)必注明出處:http://guoyunsky./blog/632191
歡迎加入Heritrix群(QQ):10447185
9.org.archive.crawler.fetcher
序號 |
類 |
說明 |
1 |
FetchDNS |
獲取DNS數(shù)據(jù),如IP |
2 |
FetchFTP |
獲取FTP數(shù)據(jù) |
3 |
FetchHTTP |
獲取HTTP數(shù)據(jù) |
4 |
HeritrixHttpMethodRetryHandler |
HTTP重試處理器,重新去連接HTTP |
10.org.archive.crawler.framework
序號 |
類 |
說明 |
1 |
AbstractTracker |
統(tǒng)計器,統(tǒng)計抓取情況,父類,具體統(tǒng)計由子類實現(xiàn) |
2 |
AlertManager |
UI界面消息管理器,給用戶顯示爬蟲相關(guān)消息,如一些異常情況 |
3 |
Checkpointer |
備份器,定時備份Heritrix相關(guān)數(shù)據(jù),如日志、BDB文件等 |
4 |
CrawlController |
控制器,控制整個爬蟲的啟動、暫停、停止等,Heritrix的核心類 |
5 |
CrawlScope |
URL范圍管理器,如種子、哪些URL符合抓取哪些URL不符合抓取 |
6 |
Filter |
過濾器,決定哪些URL可以抓取哪些不可以,父類,具體由子類實現(xiàn) |
7 |
Frontier |
調(diào)度器,對進來的URL進行調(diào)度,使其在接來下可以抓取 |
8 |
Processor |
處理器,一個URL由不同的處理器(組件)合作完成,這個為處理器父類,不同的組件有不同的實現(xiàn) |
9 |
ProcessorChain |
處理器鏈,包含相同類型的處理器,如抽取URL的時候有從Html抽取的ExtractorHTML,從JavaScript抽取的ExtractorJs |
10 |
ProcessorChainList |
處理器鏈集合,包含多個處理器鏈,每個URL都會有這樣一個處理器集合,使得先從該集合中獲取處理器鏈,然后再從處理器鏈中獲取每個處理器,最后讓每個處理器都做他們的處理,完成整個抓取 |
11 |
Scoper |
范圍管理器,驗證一個URL是否在用戶配置(從order.xml中獲取)的范圍 |
12 |
StatisticsTracking |
跟蹤統(tǒng)計器,主要統(tǒng)計抓取情況,如寬帶占用、抓取多少URL、抓取速度等,貫穿整個爬蟲的運行 |
13 |
ToePool |
線程池,用于管理爬蟲線程 |
14 |
ToeThread |
爬蟲線程,代表著一個抓取,Heritrix的核心類,貫穿整個爬蟲的運行,接下來會重點分析 |
15 |
WriterPoolProcessor |
寫處理器管理池,用于管理多個寫處理器,可以在分布式中使用 |
11.org.archive.crawler.frontier
序號 |
類 |
說明 |
1 |
AbstractFrontier |
調(diào)度器基本實現(xiàn)類,Heritrix最復(fù)雜的地方之一,接下來會重點分析 |
2 |
BdbFrontier |
BDB調(diào)度器,用BDB數(shù)據(jù)庫去管理所有的URL,如保存哪些待抓取的URL,哪些已經(jīng)抓取的URL,Heritrix最復(fù)雜的地方之一,接下來會重點分析 |
3 |
BdbMultipleWorkQueues |
管理著所有的隊列,所有的隊列數(shù)據(jù)保存在BDB數(shù)據(jù)庫中.Heritrix最復(fù)雜的地方之一,接下來會重點分析 |
4 |
BdbWorkQueue |
抓取隊列由BDB存儲管理,相同classkey的URL為一個隊列.classkey由用戶配置決定,Heritrix默認是相同host的URL就為一個隊列.Heritrix最復(fù)雜的地方之一,接下來會重點分析 |
5 |
FrontierJournal |
調(diào)度器記錄管理,記錄調(diào)度器的每一次運行情況,如插入URL,插入失敗URL等 |
6 |
HostnameQueueAssignmentPolicy |
URL ClassKey獲得策略,Heritrix的默認策略,通過域名來獲得URL的class key。然后相同的classkey存放相同的隊列 |
7 |
IPQueueAssignmentPolicy |
URL ClassKey獲得策略,這個策略是通過IP來獲得URL的class key |
8 |
QueueAssignmentPolicy |
URL ClassKey獲得策略,該類是抽象類,不同的策略由不同的子類實現(xiàn),如根據(jù)域名、IP等,用戶可以自己擴展 |
9 |
RecoveryJournal |
管理著/logs/recover.gz,該文件記錄所有的URL抓取情況,如抓取成功、失敗都有不同的對應(yīng)格式。該文件主要用于下次Heritrix恢復(fù),如Heritrix異常中斷重新啟動Heritrix的話又會重新抓取,而如果基于該文件啟動的話則會避免這個問題,同時對于上次異常中斷而來不及抓取的URL都會優(yōu)先抓取 |
10 |
RecyclingSerialBinding |
給每個線程分配的數(shù)據(jù)輸出流管理器,里面用ThreadLocal來管理每個線程的數(shù)據(jù)輸出流,如此可以節(jié)省大量重復(fù)序列化 |
11 |
WorkQueue |
代表著一個隊列,抽象類,會有不同的子類實現(xiàn),如由BDB存儲數(shù)據(jù)的BdbWorkQueue,Heritrix最復(fù)雜的地方之一,接下來會重點分析 |
12 |
WorkQueueFrontier |
隊列調(diào)度器,管理著所有的隊列,里面用不同的類型管理著不同的隊列,如不在活動狀態(tài)隊列:Queue<String> inactiveQueues.可以說是Heritrix中最為復(fù)雜最為關(guān)鍵的類,接下來會重重點分析 |
|