首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

Heritrix源码分析(2) 配置文件order.xml介绍

2012-10-09 
Heritrix源码分析(二)配置文件order.xml介绍?????本博客属原创文章,欢迎转载!转载请务必注明出处:http://g

Heritrix源码分析(二) 配置文件order.xml介绍

?????本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/613412

???? 本博客已迁移到本人独立博客: http://www.yun5u.com/

???? 欢迎加入Heritrix群(QQ):109148319,10447185 , Lucene/Solr群(QQ) :? 118972724???

?

?

???? ?order.xml是整个Heritrix的核心,里面的每个一个配置都关系到Heritrix的运行情况,没读源码之前我只能从有限的渠道去获知这些配置的运用.读完之后才知道Heritrix竟然有如此灵活的运用,如可以控制抓取速度,可以优化电脑性能,可以在某一次的抓取上继续抓取.当然整个order.xml里我也没有全部掌握,只知道大部分配置的作用,希望大家指点改正以及补充,谢谢!

?

    ????<meta></meta>??代表着该抓取JOB的元素,相当于Html的meta
 <meta>    <name>myheritrix</name>                    <!-- Heritrix抓取JOB的名字,由用户输入,用来区分不同的抓取JOB,Heritrix没有默认值 -->    <description>my heritrix</description>  <!-- Heritrix抓取JOB的描述,由用户输入,用来描述该抓取JOB,Heritrix没有默认值-->    <operator>Admin</operator>                 <!--Heritrix抓取JOB的操作者,由用户输入,Heritrix没有默认值  -->    <organization></organization>               <!--Heritrix抓取JOB的操作者所属组织,由用户输入,Heritrix没有默认值,可以为空 -->    <audience></audience>                          <!--Heritrix抓取JOB的用户或客户,由用户输入,Heritrix没有默认值,可以为空 -->    <date>20090520051654</date>             <!--提交该Heritrix抓取JOB的时间,由系统生成 -->
</meta>

?

2.<controller></controller> 跟抓取有关的所有参数,由于内容较多,并且Heritrix也已将他们分成不同模块,所以这里我也将他们拆分来说明.

?

?

 <controller>    <string name="settings-directory">settings</string> <!-- Heritrix的顶级目录 -->    <string name="disk-path"></string><!-- order.xml所在目录,单个Heritrix实例的目录 -->    <string name="logs-path">logs</string><!-- 用于保存Heritrix的日志文件,可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path-->    <string name="checkpoints-path">checkpoints</string><!-- 用于保存checkpoints(定点备份)文件的目录, 可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path-->    <string name="state-path">state</string> <!-- 用于保存crawler-state文件的目录,,可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path -->    <string name="scratch-path">scratch</string>  <!-- 用于保存网页内容临时文件的目录,,可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path-->    <long name="max-bytes-download">0</long>   <!-- 最大下载字节数,当下载字节超出该值爬虫将停止下载。如果该值为0则表示没有限制-->    <long name="max-document-download">0</long>  <!-- 最大文档下载数,当下载文档超出该值时爬虫将停止下载。如果该值为0则表示没有限制-->    <long name="max-time-sec">0</long> <!-- 最大时间抓取(秒),如果抓取时间超过该值,则爬虫将停止抓取。如果该值为0则表示没有限制-->    <integer name="max-toe-threads">30</integer>  <!-- 最大线程数用于同时处理多个URI-->    <integer name="recorder-out-buffer-bytes">4096</integer> <!-- 每一个线程的输出缓冲区大小,也就是在内存里存放多大的字节数才写入到文件中-->    <integer name="recorder-in-buffer-bytes">65536</integer> <!-- 每一个线程的输入缓冲区大小,也就是在内存里存放多大的字节数才写入到文件中-->    <integer name="bdb-cache-percent">0</integer> <!--分配给DBB缓存堆的百分比,默认为0则表示没有其他要求(通常BDB是需要60%或者是最大值) --><newObject name="scope" name="code"><newObject name="scope" name="code"><map name="http-headers"><!-- HTTP协议,当处理爬虫HTPTP协议时需要构造 -->      <string name="user-agent">Mozilla/5.0 (compatible; heritrix/1.14.3 +http://127.0.0.1)</string><!-- 用户代理,这个值字段必须包含有效的URL,如此才可以用爬虫访问个人或者组织的网站 -->      <string name="from">guoyunsky@hotmail.com</string><!--联系人信息,该字段必须包含有效的email,来代表使用本爬虫的个人或组织 -->    </map>

?

??? 3.3:爬虫协议 <newObject name="robots-honoring-policy" name="code"><newObject name="robots-honoring-policy" name="code"><newObject name="frontier" name="code"><map name="pre-fetch-processors"> <!--预先处理链,在抓取前需要从网络获取或配置相关参数 --> <newObject name="Preselector" name="code"> <map name="fetch-processors"> <!-- 获取链 --> <newObject name="DNS" name="code"> <map name="extract-processors"> <!-- 抽取链 --> <newObject name="ExtractorHTTP" name="code"><map name="write-processors"> <!--写链 --> <newObject name="Archiver" /> <!--这是一个键值对组,用value代替key.--><stringList name="content-type-map" /> <!--这是一个键值对组,用value代替key --><string name="directory-file">index.html</string> <!-- 如果给定的URL不是明确的HTML,则从这个URL去获取--><string name="dot-begin">%2E</string> <!--如果一个段以.开头,则用这个值替换它。 --><string name="dot-end">.</string> <!--如果一个目录以.结尾,则用这个值替换它.所有的操作系统出了Windows,.是建议使用的.但Windws,%%2E才是建议的 --><stringList name="host-map" /> <!--这是一个键值对组,如果一个host名字里匹配该key,则用value值替换它。当一个host使用多个name时这个可以保持一致性,如:[12.34.56.78 www42.foo.com] --><boolean name="host-directory">true</boolean> <!--是否创建在url在host命名中的子目录.如www.baidu.com创建www.baidu.com这个目录,而www.baidu.com/zhidao,则在www.baidu.com目录后面再创建知道这个子目录 --><string name="path">mirror</string> <!-- 用于下载html文件的头目录--><integer name="max-path-length">1023</integer> <!--文件系统路径最大长度 --><integer name="max-segment-length">255</integer> <!-- 文件系统路径中段路径的最大长度--><boolean name="port-directory">false</boolean> <!--在url中是否创建一个以port命名的子目录 --><boolean name="suffix-at-end">true</boolean> <!--如果为true,则后缀放在url中查询段的后面.如果为false则放在前面 --><string name="too-long-directory">LONG</string> <!--如果url中目录都超过或者接近超过文件系统最大长度,超过部分它们都将用这个代替. --><stringList name="underscore-set" /> <!--如果一个目录名在列表里忽略大小写,那么_将放在它前面.所有的文件系统除了Windows,这个是不需要的.Windows里需要注意的是:[com1 com2 com3 com4 com5 com6 com7 com8 com9 lpt1 lpt2 lpt3 lpt4 lpt5 lpt6 lpt7 lpt8 lpt9 con nul prn] --> </newObject> </map>

?

?? 3.10:请求链组件<map name="post-processors">里面可以配置自己的调度器

<map name="post-processors"> <!-- 请求链:清理URI和在URI范围内填充新的URI -->      <newObject name="Updater" name="code"><map name="loggers"> <!-- 统计跟踪链.统计跟踪模块,指定用于监视抓取和写日志,以及报告和提供信息给用户接口-->      <newObject name="crawl-statistics" />  

热点排行