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