快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

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

order.xml是整个Heritrix的核心,里面的每个一个配置都关系到Heritrix的运行情况,没读源码之前我只能从有限的渠道去获知这些配置的运用.读完之后才知道Heritrix竟然有如此灵活的运用,如可以控制抓取速度,可以优化电脑性能,可以在某一次的抓取上继续抓取.当然整个order.xml里我也没有全部掌握,只知道大部分配置的作用,希望大家指点改正以及补充,谢谢!  
        <meta></meta>  代表着该抓取JOB的元素,相当于Html的meta
 
  1. <meta>       <name>myheritrix</name>                    <!-- Heritrix抓取JOB的名字,由用户输入,用来区分不同的抓取JOB,Heritrix没有默认值 -->    
  2.    <description>my heritrix</description>  <!-- Heritrix抓取JOB的描述,由用户输入,用来描述该抓取JOB,Heritrix没有默认值-->       <operator>Admin</operator>                 <!--Heritrix抓取JOB的操作者,由用户输入,Heritrix没有默认值  -->    
  3.    <organization></organization>               <!--Heritrix抓取JOB的操作者所属组织,由用户输入,Heritrix没有默认值,可以为空 -->       <audience></audience>                          <!--Heritrix抓取JOB的用户或客户,由用户输入,Heritrix没有默认值,可以为空 -->    
  4.    <date>20090520051654</date>             <!--提交该Heritrix抓取JOB的时间,由系统生成 --> 
  5. </meta>    
2.<controller></controller> 跟抓取有关的所有参数,由于内容较多,并且Heritrix也已将他们分成不同模块,所以这里我也将他们拆分来说明.  
  1. <controller>        <string name="settings-directory">settings</string> <!-- Heritrix的顶级目录 -->    
  2.     <string name="disk-path"></string><!-- order.xml所在目录,单个Heritrix实例的目录 -->        <string name="logs-path">logs</string><!-- 用于保存Heritrix的日志文件,可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path-->    
  3.     <string name="checkpoints-path">checkpoints</string><!-- 用于保存checkpoints(定点备份)文件的目录, 可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path-->        <string name="state-path">state</string> <!-- 用于保存crawler-state文件的目录,,可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path -->    
  4.     <string name="scratch-path">scratch</string>  <!-- 用于保存网页内容临时文件的目录,,可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path-->        <long name="max-bytes-download">0</long>            <!-- 最大下载字节数,当下载字节超出该值爬虫将停止下载。如果该值为0则表示没有限制-->    
  5.     <long name="max-document-download">0</long>         <!-- 最大文档下载数,当下载文档超出该值时爬虫将停止下载。如果该值为0则表示没有限制-->        <long name="max-time-sec">0</long>                  <!-- 最大时间抓取(秒),如果抓取时间超过该值,则爬虫将停止抓取。如果该值为0则表示没有限制-->    
  6.     <integer name="max-toe-threads">30</integer>         <!-- 最大线程数用于同时处理多个URI-->        <integer name="recorder-out-buffer-bytes">4096</integer><!-- 每一个线程的输出缓冲区大小,也就是在内存里存放多大的字节数才写入到文件中-->    
  7.     <integer name="recorder-in-buffer-bytes">65536</integer><!-- 每一个线程的输入缓冲区大小,也就是在内存里存放多大的字节数才写入到文件中-->        <integer name="bdb-cache-percent">0</integer> <!--分配给DBB缓存堆的百分比,默认为0则表示没有其他要求(通常BDB是需要60%或者是最大值) -->    
  8. <newObject name="scope" class="org.archive.crawler.deciderules.DecidingScope"><!-- 抓取范围,构造CrawlScope,等下拆分来说明-->    </newObject>    
  9. <map name="http-headers"><!-- HTTP协议,当处理爬虫HTPTP协议时需要构造,等下拆分说明-->    </map>    
  10.  <newObject name="robots-honoring-policy" class="org.archive.crawler.datamodel.RobotsHonoringPolicy"><!--Robots.txt协议控制,等下拆分来说明 -->    </newObject>    
  11.  <newObject name="frontier" class="org.archive.crawler.frontier.BdbFrontier"><!-- Frontier 调度器,等下拆分来说明-- >    </newObject>    
  12. <map name="uri-canonicalization-rules"> <!-- URL规范化规则,URL规范化规则有序列表,规则适用于从上至下列出的顺序,等下拆分来说明-->    </map>    
  13. <map name="pre-fetch-processors"> <!--预先处理链,在抓取前需要从网络获取或配置相关参数,等下拆分来说明 -->    </map>    
  14. <map name="fetch-processors">  <!-- 获取链,等下拆分来说明 -->    </map>    
  15. <map name="extract-processors"> <!-- 抽取链,等下拆分来说明 -->    </map>    
  16. <map name="write-processors"> <!--写链,等下拆分来说明 -->    </map>    
  17. <map name="post-processors"> <!-- 请求链:清理URI和在URI范围内填充新的URI ,等下拆分来说明-->    </map>    
  18. <map name="loggers"> <!-- 统计跟踪链.统计跟踪模块,指定用于监视抓取和写日志,以及报告和提供信息给用户接口,等下拆分来说明-->    </map>    
  19. <newObject name="credential-store" class="org.archive.crawler.datamodel.CredentialStore"><!--凭证存储,如登陆凭证,等下拆分来说明 -->     </newObject>    
  20.  </controller>    
 
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论