Nutch、heritrix、crawler4j优缺点

Nutch:

主页:https://nutch.apache.org/index.html

 

ApacheNutch是一个高度可扩展的和可伸缩的开源网页爬虫软件项目。源于ApacheLuceneTM,项目多样化,目前由两个代码库组成,即:

1.     Nutch1.x:一个非常成熟的爬虫产品。1.x版本支持细粒度的配置,依赖于一个很好的分布式处理的ApacheHadoop数据结构。

2.     Nutch2.x:一个新兴的可供选择的版本,它的灵感来自于1.x版本,但是2.x和1.x在一个关键领域中不同。2.x版本的存储是脱离任何特定的底层数据存储,使用ApacheGora™处理对象持久性映射。这意味着我们可以实现一个极其灵活的模型/栈用于存储一切(比如获取时间、状态、内容解析文本、outlinks、inlinks等等)到NoSQL数据库中的解决方案。

 

可插拔和模块化当然有着它的好处,Nutch提供了可扩展的接口,比如Parse(解析)、Index(索引)和Scoringfilter的自定义实现(例如用于解析的ApacheTika)。另外

Nutch可以在一个单个的机器上面运行,但是可以从运行一个Hadoop集群获取很多它想要的。

 

1)Nutch是基于Hadoop的,它帮助我们更好的理解Hadoop

http://hadoop.apache.org/common/docs/stable/

2)在wiki页面:http://wiki.apache.org/nutch/FrontPage可以看到很多关于Nutch的相关文档和练习文档的链接;在Nutch首页中的Documentation会有更多的文档信息。

 

Nutch的优缺点

优点

Nutch支持分布式抓取,并有Hadoop支持,可以进行多机分布抓取,存储和索引。另外很吸引人的一点在于,它提供了一种插件框架,使得其对各种网页内容的解析、各种数据的采集、查询、集群、过滤等功能能够方便的进行扩展,正是由于有此框架,使得 Nutch 的插件开发非常容易,第三方的插件也层出不穷,极大的增强了 Nutch 的功能和声誉。

缺点

Nutch的爬虫定制能力比较弱

 

Heritrix:

主页:https://webarchive.jira.com/wiki/display/Heritrix/Heritrix

Heritrix 是一个由 java 开发的、开源的网络爬虫,用户可以使用它来从网上抓取想要的资源。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。https://www.ibm.com/developerworks/cn/opensource/os-cn-heritrix/

 

Heritrix的优缺点

优点

Heritrix的爬虫定制参数多

缺点

单实例的爬虫,之间不能进行合作。在有限的机器资源的情况下,却要复杂的操作。只有官方支持,仅仅在Linux上进行了测试。每个爬虫是单独进行工作的,没有对更新进行修订。在硬件和系统失败时,恢复能力很差。很少的时间用来优化性能。

相对于Nutch,Heritrix仅仅只是一个爬虫工具,没有提供搜索引擎。如果要对抓取的站点排序必须要实现类似于Pagerank的复杂算法。

 

 

 

Crawler4j

主页:https://code.google.com/p/crawler4j/

 

Crawler4j是一个开源的Java类库提供一个用于抓取Web页面的简单接口。可以利用它来构建一个多线程的Web爬虫。

 

Crawler4j的优缺点

优点

多线程采集

内置了Url 过滤机制,采用的是BerkeleyDB 进行url的过滤。

可扩展为支持结构化提取网页字段,可作为垂直采集用

缺点

不支持动态网页抓取,例如网页的ajax部分

不支持分布式采集,可以考虑将其作为分布式爬虫的一部分,客户端采集部分

 

 

---------------------------------------------------------------------------------

Nutch与Heritrix比较

Nutch 只获取并保存可索引的内容。Heritrix则是照单全收。力求保存页面原貌

Nutch 可以修剪内容,或者对内容格式进行转换。

Nutch 保存内容为数据库优化格式便于以后索引;刷新替换旧的内容。而Heritrix 是添加(追加)新的内容。

Nutch 从命令行运行、控制。Heritrix 有 Web 控制管理界面。

Nutch 的定制能力不够强,不过现在已经有了一定改进。Heritrix 可控制的参数更多。

Heritrix 是个 "archivalcrawler" -- 用来获取完整的、精确的、站点内容的深度复制。包括获取图像以及其他非文本内容。抓取并存储相关的内容。对内容来者不拒,不对页面进行内容上的修改。重新爬行对相同的URL不针对先前的进行替换。爬虫通过Web用户界面启动、监控、调整,允许弹性的定义要获取的URL。

Nutch支持分布式抓取,Heritrix仅支持单机抓取,不能多机协同工作。

crawler

功能单一

支持分布式爬取

定制能力

镜像保存

Nutch

×

×

Heritrix

×

 

 

 

总之,Nutch的文档比较的全面,但需要了解和学习的内容相对也会比较的多。但是如果以后项目需要进行Hadoop的部署,Nutch很值得进一步的研究。

Heritrix的文档也比较的多,对于主题爬虫而言,在Heritrix上面进行扩展也是一个很好的选择。

Crawler4j是一个多线程爬虫,相关文档较少,容易部署和学习。

 

 

 

参考博客:

http://ljl-xyf.iteye.com/blog/1259204

http://www.cnblogs.com/zhangchaoyang/articles/2111681.html

http://blog.csdn.net/pipi521520/article/details/5599919

 

http://m.blog.csdn.net/blog/angle7777/21692981

你可能感兴趣的:(Heritrix)