最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java爬蟲技術(shù)框架之Heritrix框架詳解

 更新時間:2020年07月22日 17:20:58   作者:moonsoft  
這篇文章主要介紹了爬蟲技術(shù)框架之Heritrix框架詳解,文中通過示例介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Heritrix是一個由Java開發(fā)的開源Web爬蟲系統(tǒng),用來獲取完整的、精確的站點內(nèi)容的深度復制,

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

一、Heritrix介紹

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

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

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

二、Heritrix架構(gòu)

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

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

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

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

三、一些API

org.archive.crawler.framework.CrawlJob;

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

等等

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

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

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

CrawlScope:決定當前抓取范圍;

ProcessorChainList:處理器鏈;

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

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

中央控制器CrawlControllr的類結(jié)構(gòu)如圖所示:

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

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

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

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

四、應用

作為爬蟲模塊,爬取數(shù)據(jù)

到此這篇關(guān)于爬蟲技術(shù)框架之Heritrix框架詳解的文章就介紹到這了,更多相關(guān)爬蟲技術(shù)框架 Heritrix內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解python statistics模塊及函數(shù)用法

    詳解python statistics模塊及函數(shù)用法

    本節(jié)介紹 Python 中的另一個常用模塊 —— statistics模塊,該模塊提供了用于計算數(shù)字數(shù)據(jù)的數(shù)理統(tǒng)計量的函數(shù)。這篇文章重點給大家介紹python statistics 模塊的一些用法,感興趣的朋友跟隨小編一起看看吧
    2019-10-10
  • OpenCV4.1.0+VS2017環(huán)境配置的方法步驟

    OpenCV4.1.0+VS2017環(huán)境配置的方法步驟

    這篇文章主要介紹了OpenCV4.1.0+VS2017環(huán)境配置的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Python項目跨域問題解決方案

    Python項目跨域問題解決方案

    這篇文章主要介紹了Python項目跨域問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 深入理解Python虛擬機中魔術(shù)方法的使用

    深入理解Python虛擬機中魔術(shù)方法的使用

    這篇文章主要給大家介紹在?cpython?當中一些比較花里胡哨的魔術(shù)方法,以幫助我們自己實現(xiàn)比較花哨的功能,當然這其中也包含一些也非常實用的魔術(shù)方法,需要的可以參考下
    2023-05-05
  • 詳解python實現(xiàn)讀取郵件數(shù)據(jù)并下載附件的實例

    詳解python實現(xiàn)讀取郵件數(shù)據(jù)并下載附件的實例

    這篇文章主要介紹了詳解python讀取郵件數(shù)據(jù)并下載附件的實例的相關(guān)資料,這里提供實現(xiàn)實例,幫助大家學習理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • Python變量的賦值、淺拷貝和深拷貝詳解

    Python變量的賦值、淺拷貝和深拷貝詳解

    這篇文章主要介紹了Python變量的賦值、淺拷貝和深拷貝詳解,python中為聲明一個變量有三種方法:賦值、淺拷貝、深拷貝,相信每個pythoner或多或少都知道他們之間的區(qū)別,但在某些點上,還是會踩坑,這篇文章記錄下所有關(guān)于這三者區(qū)別的疑問,需要的朋友可以參考下
    2023-11-11
  • Python SVM(支持向量機)實現(xiàn)方法完整示例

    Python SVM(支持向量機)實現(xiàn)方法完整示例

    這篇文章主要介紹了Python SVM(支持向量機)實現(xiàn)方法,結(jié)合完整實例形式分析了基于Python實現(xiàn)向量機SVM算法的具體步驟與相關(guān)操作注意事項,需要的朋友可以參考下
    2018-06-06
  • python爬取網(wǎng)頁轉(zhuǎn)換為PDF文件

    python爬取網(wǎng)頁轉(zhuǎn)換為PDF文件

    這篇文章主要為大家詳細介紹了python爬取網(wǎng)頁轉(zhuǎn)換為PDF文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Python通過Manager方式實現(xiàn)多個無關(guān)聯(lián)進程共享數(shù)據(jù)的實現(xiàn)

    Python通過Manager方式實現(xiàn)多個無關(guān)聯(lián)進程共享數(shù)據(jù)的實現(xiàn)

    這篇文章主要介紹了Python通過Manager方式實現(xiàn)多個無關(guān)聯(lián)進程共享數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • 對Python中DataFrame選擇某列值為XX的行實例詳解

    對Python中DataFrame選擇某列值為XX的行實例詳解

    今天小編就為大家分享一篇對Python中DataFrame選擇某列值為XX的行實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論

全椒县| 黄冈市| 沙坪坝区| 沿河| 农安县| 郴州市| 河间市| 永城市| 福安市| 宁波市| 荣昌县| 岫岩| 吉水县| 门源| 鞍山市| 九台市| 康定县| 从化市| 樟树市| 永善县| 无棣县| 泸定县| 西宁市| 汨罗市| 麻城市| 顺昌县| 乾安县| 孟津县| 清新县| 会昌县| 楚雄市| 密云县| 平阳县| 巩义市| 徐州市| 楚雄市| 密云县| 临澧县| 沙河市| 清水县| 固安县|