您的位置:首页 > 运维架构 > 网站架构

Heritrix的架构之CrawOrder

2008-05-04 17:29 155 查看
简单的抓取我们已经会了,那么Heritrix的内容究竟是如何工作的呢?它的设计方面有什么突出之处?

CrawOrder:

它是整个抓取工作的起点,CrawlOrder继承自一系列的与属性设置相关的基类。另外,它的最顶层基类是javax.management.Attribute,这是一个JMX中的类,它可以动态的反映出Java容器内某个MBean的属性变化。我们已经知道一次抓取任务包括许多的属性,建立一个任务的方式有很多种,最简单的一种就是根据默认的order.xml来配置。那么究竟使用什么工具来读取order.xml文件中的各种属性呢。另外,一个CrawlOrder的对象又该如何构建呢?Heritrix提供了很好的工具支持对于order.xml的读取。在org.archive.crawler.settings包下有一个XMLSettingsHandler类,它可以用来帮助读取order.xml。

public XMLSettingsHandler(File orderFile) throws InvalidAttributeValueException 

在XMLSettingsHandler的构造函数中,其所传入的参数orderFile正是一个经过对象封装的order.xml的File。这样,就可以直接调用其构造函数,来创建一个XMLSettingsHandler的实例,以此做为一个读取order.xml的工具。

当一个XMLSettingsHandler的实例被创建后,可以通过getOrder()方法来获取CrawlOrder

的实例,这样也就可以进行下一步的工作了。

最后,我们来看一下Class CrawlOrder的结构:

org.archive.crawler.datamodel

Class CrawlOrder

java.lang.Object
javax.management.Attribute
org.archive.crawler.settings.Type
org.archive.crawler.settings.ComplexType
org.archive.crawler.settings.ModuleType
org.archive.crawler.datamodel.CrawlOrder

All Implemented Interfaces: java.io.Serializable, javax.management.DynamicMBean
public class CrawlOrder
extends ModuleTypeimplements java.io.Serializable
 

Represents the 'root' of the settings hierarchy. Contains those settings that do not belong to any specific module, but rather relate to the crawl as a whole (much of this is used by the CrawlController directly or indirectly).  

OK!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息