91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Java中的Heritrix框架

發布時間:2020-07-23 09:06:11 來源:億速云 閱讀:212 作者:小豬 欄目:開發技術

這篇文章主要講解了如何使用Java中的Heritrix框架,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

Heritrix是一個由Java開發的開源Web爬蟲系統,用來獲取完整的、精確的站點內容的深度復制,

具有強大的可擴展性,運行開發者任意選擇或擴展各個組件,實現特定的抓取邏輯。

一、Heritrix介紹

Heritrix采用了模塊化的設計,用戶可以在運行時選擇要用的模塊。它由核心類(core classes)和插件模塊(pluggable modules)構成。

核心類可以配置,但不能被覆蓋,插件模塊可以由第三方模塊取代。所以我們就可以用實現了特定抓取邏輯的第三方模塊來取代默認的插件模塊,從而滿足自己的抓取需要。

CrawlController(下載控制器)整個下載過程的總控制者,整個抓取工作的起點,決定整個抓取任務的開始和結束。每個URI都有一個獨立的線程,它從邊界控制器(Frontier)獲取新的URI,然后傳遞給Processor chains(處理鏈)經過一系列Processor(處理器)處理。

如何使用Java中的Heritrix框架

二、Heritrix架構

中央控制器 CrawlController 是核心組件,決定了整個抓取任務的開始與結束。

用戶在 Heritrix web UI 控制臺設置抓取任務后,heritrix首先構造XMLSettingsHandler對象,然后調用CrawlController的構造函數,構造一個CrawlController實例并初始化,這樣,CrawlController就具備了運行條件。

此時,只需調用 requestCrawlStart()方法就可以啟動線程池和Frontier,以便向線程池中工作線程提供抓取用的URL鏈接。

如何使用Java中的Heritrix框架

Heritrix 3.x 的框架主要分為 Engine 和 Component

三、一些API

org.archive.crawler.framework.CrawlJob;

org.archive.crawler.postprocessor.CandidatesProcessor;
org.archive.modules.CrawlURI;

等等

抓取任務CrawlOrder類:是整個抓取工作的起點。一次抓取任務包括許多屬性,建立一個任務的方式有很多種,最簡單的一種就是根據默認的order.xml來配置。

中央控制器CrawlController:該類決定著抓取任務的開始和結束。它包含以下幾個組件:

CrawlOrder:該類保存了order.xml的屬性配置;

CrawlScope:決定當前抓取范圍;

ProcessorChainList:處理器鏈;

Frontier:一次抓取任務需要設定一個Frontier,以此來不斷為其每個線程提供URI;

ToePool:它是一個線程池,管理了所有在當前任務中抓取過的Host名稱和Server名稱。

中央控制器CrawlControllr的類結構如圖所示:

如何使用Java中的Heritrix框架

Frontier鏈接制造工廠:它表示一種為線程提供鏈接的工具,通過一些特定的算法來決定哪個鏈接將接下來被送入處理器鏈中,同時,它本身也負責一定的日志和狀態報告功能。

BdbFrontier類:它是用Berkeley DB 實現的,Berkeley DB 就是一個HashTable,它能夠按“key/value”方式保存數據,能夠為應用程序提供可伸縮的、高性能的、有事務保護功能的嵌入式數據庫。

Heritrix的多線程ToeThread和ToePool:要想更快更有效地抓取網頁,必須采用多線程,Heritrix則采用多線程機制,提供了一個標準的線程池ToePool,用于管理所有的抓取線程。

處理器鏈 Processor:包括PreProcessor、Fetcher、Extractor、Writer、PostProcessor五種。

四、應用

作為爬蟲模塊,爬取數據

如何使用Java中的Heritrix框架

看完上述內容,是不是對如何使用Java中的Heritrix框架有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌兰察布市| 东至县| 夏津县| 汕尾市| 无棣县| 新乡市| 南乐县| 克东县| 江达县| 九寨沟县| 贺州市| 桦川县| 峨边| 广水市| 卓尼县| 通化市| 剑阁县| 临汾市| 扶余县| 思茅市| 乐平市| 金川县| 赤峰市| 沭阳县| 丰镇市| 西乌珠穆沁旗| 太谷县| 通辽市| 巴楚县| 衡东县| 茂名市| 饶河县| 教育| 宜宾县| 兖州市| 富源县| 昭平县| 满洲里市| 滦平县| 雷州市| 额济纳旗|