本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/629891
欢迎加入Heritrix群(QQ):109148319
Heritrix的order.xml分了很多组件,可以灵活的配置各个抓取参数。但很多人都关心如何使得抓取更快更久更多,这里首先从Heritrix自身着手吧,修改order.xml的一些参数其实也可以达到这一目的.
下面就列出各个参数、说明和理想值
序号 | 配置名 | 理想值 | 说明 |
1 | <long name="max-bytes-download">0</long> | 0 | 最大下载字节数,就是当Heritrix抓取了多少字节后停止抓取0表示为无限制 |
2 | <long name="max-document-download">0</long> | 0 | 最大下载文档数,就是当Heritrix抓取了多少URL则停止抓取,0表示没有限制 |
3 | <long name="max-time-sec">0</long> | 3 | 抓取一个网页的最大时间(秒),超过了该时间则不抓取,0表示没有这个限制 |
4 | <integer name="max-toe-threads">3</integer> | 50 | 抓取的线程数,表示有多少个线程去抓取,一般50足够了 |
5 | <float name="delay-factor">4.0</float> | 1.0 | 如果从某个队列抓取一个URL花费N秒,则下次从该队列获取URL去抓取则要延迟N*该值 |
6 | <integer name="max-delay-ms">20000</integer> | 2000 | 队列的最大延迟时间,单位为毫秒 |
7 | <integer name="min-delay-ms">2000</integer> | 0 | 队列的最小延迟时间,单位为毫秒 |
8 | <integer name="max-retries">30</integer> | 5 | URL抓取失败可以重试的次数,重试次数越少越好 |
9 | <integer name="total-bandwidth-usage-KB-sec">0</integer> | 0 | 总的 抓取速度(KB/秒)限制,0表示没有限制 |
10 | <integer name="max-per-host-bandwidth-usage-KB-sec">0</integer> | 0 |
每个域名抓取速度(KB/S)限制,0表示没有限制
|
11 | <integer name="target-ready-backlog">50</integer> | 200 | 准备队列中待抓取的URL个数,这些URL无需经过队列等待可以立刻去抓取 |
12 | <integer name="ip-validity-duration-seconds">21600</integer> | 0 | DNS有效时间(单位为秒),超过这个时间则要重新去获取DNS |
13 | <integer name="robot-validity-duration-seconds">86400</integer> | 0 | 爬虫协议(robots.txt)有效时间,超过这个时间则要重新去读取robots.txt |
更多技术文章、感悟、分享、勾搭,请用微信扫描:
相关推荐
相较于Heritrix 1.x的`order.xml`,`crawler-beans.cxml` 采用了Spring框架进行管理,以bean的形式定义了各种组件,提高了配置的灵活性和可维护性。 1. **simpleOverrides**:这个bean用于设置基本的爬取任务信息,...
20. `org.archive.crawler.settings`:管理配置文件`order.xml`,这是Heritrix的配置中心,定义了爬虫的行为和策略。 通过对这些包的分析,我们可以看到Heritrix是一个高度模块化和可定制的爬虫。每个组件都有明确...
每种方式都会生成一个名为`order.xml`的描述文件,记录了Heritrix运行所需的所有信息,包括处理器类、前沿类、抓取线程数、连接超时时间等。 选择“With defaults”选项,Heritrix会复制默认的`order.xml`文件,该...
2. **配置order.xml**:在任务目录下创建order.xml文件,这是Heritrix爬行任务的主要配置文件,包含爬行的元信息和设置。 【代码控制Heritrix】 对于更复杂的爬行需求,可以通过编写代码来控制Heritrix的行为: 1...
1. **CrawlOrder**:定义了抓取任务的属性,可以基于默认的order.xml文件进行配置。 2. **CrawlScope**:决定了抓取的范围,控制哪些URL会被抓取。 3. **ProcessorChainList**:处理器链,包含一系列处理器,如...