heritrix 在Prefetcher中取消robots.txt的限制
来源:互联网 发布:spss软件售价 编辑:程序博客网 时间:2024/04/30 11:53
Robots.txt是一种专门用于搜索引擎网 络爬虫的文件,当构造一个网站时,如果作者希望该网站的内容被搜索引擎收录,就可以在网站中创建一个纯文本文件robots.txt,在这个文件中,声明 该网站不想被robot访问的部分。这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。
Heritrix在其说明文档中,表明它是一个 完全遵守robots.txt协议的网络爬虫。这一点固然在宣传上起到了一定的作用。但是,在实际的网页采集过程中,这并不是一种最好的作法。因为大部分 的网站并不会放置一个robots.txt文件以供搜索引擎读取,在互联网信息以几何级数增长的今天,网站总是在希望自己的内容不被人所利用的同时,又希 望自己能够被更多的用户从搜索引擎上检索到。
不过幸好,robots.txt协议本身只是一种附加的协议,网站本身并不能了解究竟哪些Socket联接属于爬虫哪些属于正常的浏览器连接。所以,不遵守robos.txt协议成为了更多搜索引擎的首选。
使用过Heritrix的朋友就会发现这样一个 问题,如果当一个网站没有放置robots.txt文件时,Heritrix总是要花上大量的时间试图去访问这样一个文件,甚至可能retry很多次。这 无疑很大的降低了抓取效率。因此,为了提高抓取的效率,可以试着将对robots.txt的访问部分去除。
在Heritrix中,对robots.txt 文件的处理是处于PreconditionEnforcer这个Processor中的。PreconditionEnforcer是一个 Prefetcher,当处理时,总是需要考虑一下当前这个链接是否有什么先决条件要先被满足的,而对robots.txt的访问则正好是其中之一。在 PreconditionEnforcer中,有一个private类型的方法,它的方法签名为:
private boolean considerRobotsPreconditions(CrawlURI curi)
该方法的含义为:在进行对参数所表示的链接的抓取前,看一下是否存在一个由robots.txt所决定的先决条件。很显然,如果对每个链接都有这样的处理。那么,很有可能导致整个抓取任务的失败。因此,需要对它进行调整。
这个方法返回true时的含义为需要考虑 robots.txt文件,返回false时则表示不需要考虑robots.txt文件,可以继续将链接传递给后面的处理器。所以,最简单的修改办法就是 将这个方法整个注释掉,只留下一个false的返回值。经过笔者的试验,这种方法完全可行,抓取的速度提高了至少一半以上!
Heritrix在其说明文档中,表明它是一个 完全遵守robots.txt协议的网络爬虫。这一点固然在宣传上起到了一定的作用。但是,在实际的网页采集过程中,这并不是一种最好的作法。因为大部分 的网站并不会放置一个robots.txt文件以供搜索引擎读取,在互联网信息以几何级数增长的今天,网站总是在希望自己的内容不被人所利用的同时,又希 望自己能够被更多的用户从搜索引擎上检索到。
不过幸好,robots.txt协议本身只是一种附加的协议,网站本身并不能了解究竟哪些Socket联接属于爬虫哪些属于正常的浏览器连接。所以,不遵守robos.txt协议成为了更多搜索引擎的首选。
使用过Heritrix的朋友就会发现这样一个 问题,如果当一个网站没有放置robots.txt文件时,Heritrix总是要花上大量的时间试图去访问这样一个文件,甚至可能retry很多次。这 无疑很大的降低了抓取效率。因此,为了提高抓取的效率,可以试着将对robots.txt的访问部分去除。
在Heritrix中,对robots.txt 文件的处理是处于PreconditionEnforcer这个Processor中的。PreconditionEnforcer是一个 Prefetcher,当处理时,总是需要考虑一下当前这个链接是否有什么先决条件要先被满足的,而对robots.txt的访问则正好是其中之一。在 PreconditionEnforcer中,有一个private类型的方法,它的方法签名为:
private boolean considerRobotsPreconditions(CrawlURI curi)
该方法的含义为:在进行对参数所表示的链接的抓取前,看一下是否存在一个由robots.txt所决定的先决条件。很显然,如果对每个链接都有这样的处理。那么,很有可能导致整个抓取任务的失败。因此,需要对它进行调整。
这个方法返回true时的含义为需要考虑 robots.txt文件,返回false时则表示不需要考虑robots.txt文件,可以继续将链接传递给后面的处理器。所以,最简单的修改办法就是 将这个方法整个注释掉,只留下一个false的返回值。经过笔者的试验,这种方法完全可行,抓取的速度提高了至少一半以上!
0 0
- heritrix中在Prefetcher中取消robots.txt的限制
- heritrix 在Prefetcher中取消robots.txt的限制
- heritrix 在Prefetcher中取消robots.txt的限制
- 【垂直搜索引擎搭建06】heritrix:取消Robot.txt限制
- 网址受到robots.txt的限制
- robots.txt在SEO中作用
- 用wget避开robots.txt的下载限制
- 爬虫中robots.txt
- robots.txt的格式
- robots.txt 的作用
- robots.txt的作用
- 如何写robots.txt?关于robots.txt的制作
- robots.txt写法大全和robots.txt语法的作用
- 关于robots.txt的书写
- 关于robots.txt 的用法
- robots.txt文件的奥秘
- SNS网站的ROBOTS.TXT
- robots.txt的详细写法
- NSString字符串的大写,小写,首字母大写转换
- 非常简单的2个步骤,在linux下创建虚拟内存,提升文件访问速度
- HDU-#1372 Knight Moves(双向BFS)
- 计算机视觉资源汇总
- 备忘录
- heritrix 在Prefetcher中取消robots.txt的限制
- Nginx安全配置研究
- 的非官方的个电饭锅
- 文本查询
- 2014年面试经验与面试题的思考和总结
- 解决win7乱码
- 12864显示图片
- jquery插件基础解析—jquery插件实战教程(2)
- 光伏简介