`
vie61vie
  • 浏览: 10101 次
社区版块
存档分类
最新评论

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

 
阅读更多

Heritrix源码分析(二) 配置文件order.xml介绍
2010年10月13日
  本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.javaeye.com/blog/613412
  欢迎加入Heritrix群(QQ):10447185 
  order.xml是整个Heritrix的核心,里面的每个一个配置都关系到Heritrix的运行情况,没读源码之前我只能从有限的渠道去获知这些配置的运用.读完之后才知道Heritrix竟然有如此灵活的运用,如可以控制抓取速度,可以优化电脑性能,可以在某一次的抓取上继续抓取.当然整个order.xml里我也没有全部掌握,只知道大部分配置的作用,希望大家指点改正以及补充,谢谢!
    代表着该抓取JOB的元素,相当于Html的meta
   myheritrix  my heritrix  Admin      20090520051654 
  2. 跟抓取有关的所有参数,由于内容较多,并且Heritrix也已将他们分成不同模块,所以这里我也将他们拆分来说明.
   settings   logs checkpoints state  scratch  0  0  0  30  4096  65536  0                                       
  3.接下来拆分每个组件的配置文件一一进行说明,最后对Heritrix主要的配置也就是我们可以影响抓取的配置进行说明。
  3.1:抓取范围
   false  seeds.txt  true         ACCEPT    true    false true   20   3 1   2返回REJECT,如http://www.baidu.com/a/a/a/index.html ,其中/a出现三次,超过了2次,所以返回REJECT(拒绝)-->   20返回REJET,段表示http://www.baidu.com/a/b,其中a和b表示一个段 -->      
  3.2: HTTP协议
   Mozilla/5.0 (compatible; heritrix/1.14.3 +http://127.0.0.1) guoyunsky@hotmail.com 
  3.3:爬虫协议 
   classic  false       
  3.4:Frontier 调度器
   4.0等待的间隔时间,可以预防无节制的抓取一个网站.通常是用该值去乘以上一个url的抓取时间来表示为下一个url需要等待的时间 --> 20000等待时间,单位毫秒 --> 2000等待时间,单位毫秒--> 300 30 900 1 0 0 org.archive.crawler. frontier.HostnameQueueAssignmentPolicy如何去分配URI到各个队列,这个类是相同的host的url就属于同一个队列 -->  false false结果,并有可能去增加URI和调整setting,默认为false--> false true true 3000等待队列停用之前将被尝试 --> 100 -1 org.archive.crawler.frontier.Zer oCostAssignmentPolicy 300000 50等待.只有hold-queues为true才有效,默认为50 --> org.archive.crawler.u til.BdbUriUniqFilter false 
  3.5:URL规范化规则,主要用来规范化每个URL,用Heritrix默认的就好了,这里不做说明了,其实也是通过各种规则
  3.6:预先处理链组件:     true     false发送到在日志目录下的以本类命名的日志文件中。在heritrix.properties中设置好日志等级和日志格式,这个属性在重启后知获取一次. --> true false     true     86400 86400 false  
  3.7:获取组件:     true     false true sha1   true         1200 20000Socket在规定时间内(毫秒)没有反应,则将放弃连接或者读取。这里不一定是在抓取期间立即放弃,会尝试重新连接和重新读取直到这个设置的时间到了.设置为0则没这个限制,但这里不推荐,因为Socket会无限期处理 --> 0 0 false true   open     GB2312 true sha1 true发送'If-Modified-Since' header,如果上次的Last-Modified抓取历史消息在URI历史中有效--> true发送'If-Node-Match' header,如果上次的Etag抓取历史信息在URI历史中有效 --> true发送'Connection: close' header--> true发送'Referer' header,'Referer' header包含crawler来自哪里,在目前发现的URI页面里。'Referer'通常记录在远程服务器上,可以协助网站管理员去找出爬虫抓取了哪些特定的区域。 --> false发送'Range' header当文档尺寸最大下载字节数限制。要有礼貌的道HTTP服务器并且发送'Range' header,说明你只是对前n个字节感兴趣。如果文档尺寸最大下载字节数大于0,在'206 Partial Content'相应状态里发送'Range' header,这样比只是截断超出下载字节数要好,不过很少的情况下发送'Range',将会得到'416 Request Range Not Satisfiable'回应 --> socket),当没有指定时使用本地默认的地址 -->  
  3.8:抽取组件      true       true     true true true true true true  
  3.9:写组件    true     true      index.html  %2E  .    true  mirror  1023  255  false  true  LONG     
  3.10:请求链组件里面可以配置自己的调度器    true       true     false发送到 在日志目录下的以本类命名的日志文件中。在heritrix.properties中设置好日志等级和日志格式,这个属性在重启后知获取一次. --> true -1       true      
  3.11:统计跟踪链组件    20  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics