Heritrix的架构之CrawOrder
简单的抓取我们已经会了,那么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.Objectjavax.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 ModuleType
- implements 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!
推荐文章 |

javax.management.Attribute