是IA的開(kāi)放源代碼,可擴展的,基于整個(gè)Web的,歸檔網(wǎng)絡(luò )爬蟲(chóng)工程
Heritrix工程始于2003年初,IA的目的是開(kāi)發(fā)一個(gè)特殊的爬蟲(chóng),對網(wǎng)上的
資源進(jìn)行歸檔,建立網(wǎng)絡(luò )數字圖書(shū)館,在過(guò)去的6年里,IA已經(jīng)建立了400TB的數據。
IA期望他們的crawler包含以下幾種:
寬帶爬蟲(chóng):能夠以更高的帶寬去站點(diǎn)爬。
主題爬蟲(chóng):集中于被選擇的問(wèn)題。
持續爬蟲(chóng):不僅僅爬更當前的網(wǎng)頁(yè)還負責爬日后更新的網(wǎng)頁(yè)。
實(shí)驗爬蟲(chóng):對爬蟲(chóng)技術(shù)進(jìn)行實(shí)驗,以決定該爬什么,以及對不同協(xié)議的爬蟲(chóng) 爬行結果進(jìn)行分析的。
Heritrix的主頁(yè)是http://crawler.
Heritrix是一個(gè)爬蟲(chóng)框架,可加如入一些可互換的組件。
它的執行是遞歸進(jìn)行的,主要有以下幾步:
1。在預定的URI中選擇一個(gè)。
2。獲取URI
3。分析,歸檔結果
4。選擇已經(jīng)發(fā)現的感興趣的URI。加入預定隊列。
5。標記已經(jīng)處理過(guò)的URI
Heritrix主要有三大部件:范圍部件,邊界部件,處理器鏈
范圍部件:主要按照規則決定將哪個(gè)URI入隊。
邊界部件:跟蹤哪個(gè)預定的URI將被收集,和已經(jīng)被收集的URI,選擇下一個(gè) URI,剔除已經(jīng)處理過(guò)的URI。
處理器鏈:包含若干處理器獲取URI,分析結果,將它們傳回給邊界部件
Heritrix的其余部件有:
WEB管理控制臺:大多數都是單機的WEB應用,內嵌JAVA HTTP 服務(wù)器。
操作者可以通過(guò)選擇Crawler命令來(lái)操作控制臺。
Crawler命令處理部件:包含足夠的信息創(chuàng )建要爬的URI。
Servercache(處理器緩存):存放服務(wù)器的持久信息,能夠被爬行部件隨時(shí)
查到,包括IP地址,歷史記錄,機器人策略。
處理器鏈:
預取鏈:主要是做一些準備工作,例如,對處理進(jìn)行延遲和重新處 理,否決隨后的操作。
提取鏈:主要是獲得資源,進(jìn)行DNS轉換,填寫(xiě)請求和響應表單
抽取鏈:當提取完成時(shí),抽取感興趣的HTML,JavaScript,通常那 里有新的也適合的URI,此時(shí)URI僅僅被發(fā)現,不會(huì )被評估
寫(xiě)鏈:存儲爬行結果,返回內容和抽取特性,過(guò)濾完存儲。
提交鏈:做最后的維護,例如,測試那些不在范圍內的,提交給邊 界部件
Heritrix 1.0.0包含以下關(guān)鍵特性:
1.用單個(gè)爬蟲(chóng)在多個(gè)獨立的站點(diǎn)一直不斷的進(jìn)行遞歸的爬。
2。從一個(gè)提供的種子進(jìn)行爬,收集站點(diǎn)內的精確URI,和精確主
機。
3。主要是用廣度優(yōu)先算法進(jìn)行處理。
4。主要部件都是高效的可擴展的
5。良好的配置,包括:
a??稍O置輸出日志,歸檔文件和臨時(shí)文件的位置
b??稍O置下載的最大字節,最大數量的下載文檔,和最大 的下載時(shí)間。
c??稍O置工作線(xiàn)程數量。
d??稍O置所利用的帶寬的上界。
e??稍谠O置之后一定時(shí)間重新選擇。
f。包含一些可設置的過(guò)濾機制,表達方式,URI路徑深度選 擇等等。
Heritrix的局限:
1。單實(shí)例的爬蟲(chóng),之間不能進(jìn)行合作。
2。在有限的機器資源的情況下,卻要復雜的操作。
3。只有官方支持,僅僅在Linux上進(jìn)行了測試。
4。每個(gè)爬蟲(chóng)是單獨進(jìn)行工作的,沒(méi)有對更新進(jìn)行修訂。 5。在硬件和系統失敗時(shí),恢復能力很差。
6。很少的時(shí)間用來(lái)優(yōu)化性能。
Heritrix工程始于2003年初,IA的目的是開(kāi)發(fā)一個(gè)特殊的爬蟲(chóng),對網(wǎng)上的
資源進(jìn)行歸檔,建立網(wǎng)絡(luò )數字圖書(shū)館,在過(guò)去的6年里,IA已經(jīng)建立了400TB的數據。
IA期望他們的crawler包含以下幾種:
寬帶爬蟲(chóng):能夠以更高的帶寬去站點(diǎn)爬。
主題爬蟲(chóng):集中于被選擇的問(wèn)題。
持續爬蟲(chóng):不僅僅爬更當前的網(wǎng)頁(yè)還負責爬日后更新的網(wǎng)頁(yè)。
實(shí)驗爬蟲(chóng):對爬蟲(chóng)技術(shù)進(jìn)行實(shí)驗,以決定該爬什么,以及對不同協(xié)議的爬蟲(chóng) 爬行結果進(jìn)行分析的。
Heritrix的主頁(yè)是http://crawler.
Heritrix是一個(gè)爬蟲(chóng)框架,可加如入一些可互換的組件。
它的執行是遞歸進(jìn)行的,主要有以下幾步:
1。在預定的URI中選擇一個(gè)。
2。獲取URI
3。分析,歸檔結果
4。選擇已經(jīng)發(fā)現的感興趣的URI。加入預定隊列。
5。標記已經(jīng)處理過(guò)的URI
Heritrix主要有三大部件:范圍部件,邊界部件,處理器鏈
范圍部件:主要按照規則決定將哪個(gè)URI入隊。
邊界部件:跟蹤哪個(gè)預定的URI將被收集,和已經(jīng)被收集的URI,選擇下一個(gè) URI,剔除已經(jīng)處理過(guò)的URI。
處理器鏈:包含若干處理器獲取URI,分析結果,將它們傳回給邊界部件
Heritrix的其余部件有:
WEB管理控制臺:大多數都是單機的WEB應用,內嵌JAVA HTTP 服務(wù)器。
操作者可以通過(guò)選擇Crawler命令來(lái)操作控制臺。
Crawler命令處理部件:包含足夠的信息創(chuàng )建要爬的URI。
Servercache(處理器緩存):存放服務(wù)器的持久信息,能夠被爬行部件隨時(shí)
查到,包括IP地址,歷史記錄,機器人策略。
處理器鏈:
預取鏈:主要是做一些準備工作,例如,對處理進(jìn)行延遲和重新處 理,否決隨后的操作。
提取鏈:主要是獲得資源,進(jìn)行DNS轉換,填寫(xiě)請求和響應表單
抽取鏈:當提取完成時(shí),抽取感興趣的HTML,JavaScript,通常那 里有新的也適合的URI,此時(shí)URI僅僅被發(fā)現,不會(huì )被評估
寫(xiě)鏈:存儲爬行結果,返回內容和抽取特性,過(guò)濾完存儲。
提交鏈:做最后的維護,例如,測試那些不在范圍內的,提交給邊 界部件
Heritrix 1.0.0包含以下關(guān)鍵特性:
1.用單個(gè)爬蟲(chóng)在多個(gè)獨立的站點(diǎn)一直不斷的進(jìn)行遞歸的爬。
2。從一個(gè)提供的種子進(jìn)行爬,收集站點(diǎn)內的精確URI,和精確主
機。
3。主要是用廣度優(yōu)先算法進(jìn)行處理。
4。主要部件都是高效的可擴展的
5。良好的配置,包括:
a??稍O置輸出日志,歸檔文件和臨時(shí)文件的位置
b??稍O置下載的最大字節,最大數量的下載文檔,和最大 的下載時(shí)間。
c??稍O置工作線(xiàn)程數量。
d??稍O置所利用的帶寬的上界。
e??稍谠O置之后一定時(shí)間重新選擇。
f。包含一些可設置的過(guò)濾機制,表達方式,URI路徑深度選 擇等等。
Heritrix的局限:
1。單實(shí)例的爬蟲(chóng),之間不能進(jìn)行合作。
2。在有限的機器資源的情況下,卻要復雜的操作。
3。只有官方支持,僅僅在Linux上進(jìn)行了測試。
4。每個(gè)爬蟲(chóng)是單獨進(jìn)行工作的,沒(méi)有對更新進(jìn)行修訂。 5。在硬件和系統失敗時(shí),恢復能力很差。
6。很少的時(shí)間用來(lái)優(yōu)化性能。


