Nutch:

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

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

Nutch的优缺点

优点

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

缺点

Nutch的爬虫定制能力比较弱

Heritrix:

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

Heritrix的优缺点

优点

Heritrix的爬虫定制参数多

缺点

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

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

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://m.blog.csdn.net/blog/angle7777/21692981

crawler4j mysql_Nutch、heritrix、crawler4j优缺点相关推荐

  1. java使用Crawler4j开发爬虫

    2019独角兽企业重金招聘Python工程师标准>>> 在爬虫开发中,常用的语言是python,但是也可以使用java来进行 开发,这样就可以利用java强大的库,下面就来介绍一下常 ...

  2. crawler4j_迷你搜索引擎–使用Neo4j,Crawler4j,Graphstream和Encog的基础知识

    crawler4j 继续执行正在实现搜索引擎的Programming Collection Intelligence (PCI)的第4章. 我可能比做一次运动所咬的东西要多. 我认为,与其使用本书中所 ...

  3. 迷你搜索引擎–使用Neo4j,Crawler4j,Graphstream和Encog的基础知识

    继续执行正在实现搜索引擎的Programming Collection Intelligence (PCI)的第4章. 我可能比做一次运动所咬的东西要多. 我认为, 与其一直使用本书中使用的普通关系数 ...

  4. Java开源爬虫框架crawler4j

    花了两个小时把Java开源爬虫框架crawler4j文档翻译了一下,因为这几天一直在学习Java爬虫方面的知识,今天上课时突然感觉全英文可能会阻碍很多人学习的动力,刚好自己又正在接触这个爬虫框架,所以 ...

  5. crawler4j爬虫入门

    一.nutch和crawler4 nutch的人比较多,适合大规模海量数据的爬取. crawler4j是一个短小精悍的爬虫. 二.下载crawler4j源码 项目主页:https://code.goo ...

  6. crawler4j mysql_爬虫初探(二)解析crawler4j源码crawler包

    本人也是菜鸟一枚,现在刚开始接触爬虫,想通过读别人的爬虫框架源码来了解下爬虫,如有错误,请见谅并指出. 继之前解析了crawler4j的robotstxt包之后,今天来让我们看看crawler包和ex ...

  7. crawler爬虫java实例,Crawler4j快速入门实例

    下面我们来写一个Demo,让大家快速入门crawler4j:代码中加了详细的备注,大家可以好好看看. crawler4j中用了slf4j来记录项目运行日志信息.我们使用slf4j具体实现类log4j: ...

  8. 基于Crawler4j的WEB爬虫

    基于Crawler4j的WEB爬虫 一.WEB爬虫介绍 爬虫,Crawler,最早被用于搜索引擎收录页面,例如百度蜘蛛等等.说简单点,原理就是根据一些规则,获取url和页面,再从获取到的页面中继续提取 ...

  9. 基于Crawler4j的Java爬虫实践

    基于Crawler4j的Java爬虫实践 1. Introduction 2. 系统架构 2.1 crawler4j 2.2 jsoup 2.3 Apache Commons CSV 2.4 mave ...

最新文章

  1. 怎样学会科学的调研并启动一个项目
  2. android表情输入键盘,GitHub - UKfire/Emotion: 帮你的Android应用快速集成表情键盘
  3. select、poll、epoll之间的区别
  4. Skywalking 结束孵化,成为 Apache 基金会顶级项目
  5. 动态规划应用--找零钱
  6. JAVA进阶教学之(单链表数据结构)
  7. android 获取编译日期,flutter学习笔记(2)android编译,以及如何加快首次编译时间。...
  8. Unix domain socket IPC
  9. 《重构HTML改善Web应用的设计》读书笔记
  10. 微信小程序教程笔记6
  11. bootstrap datetimepicker日期插件使用方法
  12. python编程教学软件-B站最受欢迎的Python教程,免费教学视频可以下载了
  13. mysql安装,mysql环境变量配置
  14. NB-IOT基础模型搭建思路
  15. 基于TCP/IP实现串口到网络的通讯转换
  16. 路由器wifi信号测试软件,常用路由器WIFI测速效果比对
  17. 图表有很多,你用对了么?
  18. unity3D游戏开发八之天空盒
  19. IBM面试题:海盗分金算法及其思想
  20. mysql模糊搜索 like_Mysql必知必会(3):模糊查询(LIKE)

热门文章

  1. C语言的条件编译#if, #elif, #else, #endif、#ifdef, #ifndef
  2. uni-app 微信小程序使用 web-view 预览PDF
  3. 晋级赛关键一场遇到服务器中途维护,第四届全球争霸赛-大区赛常见问题说明...
  4. matlab与树莓派通信
  5. 电脑已经连上网却显示没网图标小地球,导致国际游戏暴雪等软件无法运行(已解决)
  6. pip install安装php,详述Python、pip、easy_install的安装教程
  7. 检测网络状态的工具类
  8. java动态菜单显示实现,java – 为Spring MVC / AOP应用程序实现动态菜单
  9. Android开发之利用动画做出Activity悬浮滑动效果
  10. linux 设置gbk编码格式,设置ubuntu支持gbk编码格式和设置eclipse 编码格式