,,Java爬虫技术框架之Heritrix框架详解

,,Java爬虫技术框架之Heritrix框架详解

本文主要介绍爬虫技术框架Heritrix框架的详细说明。通过实例非常详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友下面跟边肖学习。

Heritrix是一个由Java开发的开源网络爬虫系统,用于获取网站内容完整准确的深层副本,

具有很强的可扩展性,运行开发者可以任意选择或扩展各个组件,实现特定的抓取逻辑。

一、Heritrix介绍

Heritrix采用模块化设计,用户可以在运行时选择使用哪个模块。它由核心类和插件模块组成。

类可以被配置,但不能被覆盖,插件模块可以被第三方模块替换。因此,我们可以用实现特定爬行逻辑的第三方模块来替换默认插件模块,以满足我们自己的爬行需求。

CrawlController(下载控制器)是整个下载过程的总控制器,是整个抓取工作的起点,决定了整个抓取任务的开始和结束。每个URI都有一个独立的线程,它从边界控制器(Frontier)获取新的URI,然后将其传递给处理器链(processing chain)由一系列处理器(Processors)进行处理。

二、Heritrix架构

中央控制器CrawlController是核心部件,决定了整个抓取任务的开始和结束。

用户在heritrix web UI控制台设置抓取任务后,heritrix首先构造XMLSettingsHandler对象,然后调用CrawlController的构造函数构造CrawlController的一个实例并初始化。这样,CrawlController就具备了运行条件。

此时,只需调用requestCrawlStart()方法就可以启动线程池和边界,从而为线程池中的工作者提供用于爬行的URL链接。

Heritrix 3.x的框架主要分为引擎和组件。

三、一些API

org . archive . crawler . framework . crawl job;

org . archive . crawler . post processor . candidates processor;

org . archive . modules . crawl uri;

等等

爬虫顺序类:是整个爬虫工作的起点。一个抓取任务包含很多属性,创建一个任务有很多方法。最简单的方法是根据默认的order.xml配置它

中央控制器CrawlController:这个类决定抓取任务的开始和结束。它包含以下组件:

CrawlOrder:该类保存order.xml的属性配置;

CrawlScope:确定当前抓取范围;

ProcessorChainList:处理器链;

前沿:爬行任务需要设置一个前沿,以便持续提供URI;对于每个线程;

ToePool:它是一个线程池,管理当前任务中已经抓取的所有主机名和服务器名。

中央控制器CrawlControllr的类结构如图所示:

前沿链接制造工厂(frontier Link Manufacturing Factory):代表一个为线程提供链接的工具,通过一些特定的算法决定下一个将哪个链接发送到处理器链。同时,它还负责某些日志记录和状态报告功能。

BdbFrontier类:用Berkeley DB实现,是一个哈希表。它能以“键/值”的方式保存数据,并能为应用程序提供可扩展的、高性能的具有事务保护功能的嵌入式数据库。

Heritrix的多线程ToeThread和ToePool:想要更快更有效的抓取网页,就必须采用多线程。Heritrix采用多线程机制,并提供一个标准的线程池来管理所有的爬行线程。

处理器链:包括预处理器、提取器、提取器、写入器和后处理器。

四、应用

作为爬虫模块,抓取数据。

以上就是本文关于Heritrix框架爬虫技术框架的详细解释。关于Heritrix框架爬虫技术的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: