目前主流的Java爬虫框架主要有Nutch、Crawler4j、WebMagic、WebCollector等。

1. 分布式爬虫:Nutch

github地址:https://github.com/andrewcao95/nutch-crawler
Nutch是apache旗下的一个用Java实现的开源索引引擎项目,通过nutch,诞生了hadoop、tika、gora。Nutch的设计初衷主要是为了解决下述两个问题:

  1. 商业搜索引擎存在商业利益的考虑。 有的商业搜索引擎允许竞价排名(比如百度),搜索结果不是纯粹的根据网页本身的价值进行排序,这样有的搜索结果不全是和站点内容相关。
  2. 商业搜索引擎不开源。 Nutch是开放源代码,因此任何人都可以查看它的排序算法是如何工作的。Nutch对学术搜索和政府类站点的搜索来说是个好选择。因为一个公平的排序结果是非常重要的。

Nutch1.2版本之后,Nutch已经从搜索引擎演化为网络爬虫,演化为两大分支版本:1.X和2.X,最大区别在于2.X对底层的数据存储进行了抽象以支持各种底层存储技术,其中:

  • Nutch1.2之后是一个完整的搜索引擎
  • Nutch1.7之后是一个基于HDFS的网络爬虫
  • Nutch2.2.1之后是一个基于Gora的网络爬虫

Nutch 2.x 与 Nutch 1.x 相比,剥离出了存储层,放到了gora中,可以使用多种数据库,例如HBase, Cassandra, MySql来存储数据了。Nutch 1.7 则是把数据直接存储在HDFS上。

2. Crawler4j

crawler4j是一个开源的Java抓取Web爬虫,它提供了一个简单的抓取Web的界面。 使用它,可以在几分钟内设置一个多线程的网络爬虫。

3. WebMagic

WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。在这四个组件中我们需要做的就是在PageProcessor中写自己的业务逻辑,比如如何解析当前页面,抽取有用信息,以及发现新的链接。

4. WebCollector

WebCollector是一个无须配置、便于二次开发的JAVA爬虫框架(内核),它提供精简的的API,只需少量代码即可实现一个功能强大的爬虫。WebCollector-Hadoop是WebCollector的Hadoop版本,支持分布式爬取。

目前WebCollector在Github上维护:https://github.com/CrawlScript/WebCollector

java常用的爬虫框架相关推荐

  1. java 使用webmagic 爬虫框架爬取博客园数据

    java 使用webmagic 爬虫框架爬取博客园数据存入数据库 学习记录   webmagic简介: WebMagic是一个简单灵活的Java爬虫框架.你可以快速开发出一个高效.易维护的爬虫. ht ...

  2. 简单介绍一下Java常用的五大框架!

    Java框架在Java开发中的作用是毋庸置疑的.那么Java常用框架有哪些?大概包括:Hibernate.Spring.Struts.jQuery.Redis五种.这些框架有什么用呢?Java常用框架 ...

  3. python爬虫框架排行榜-常用python爬虫框架整理

    Python中好用的爬虫框架 一般比价小型的爬虫需求,我是直接使用requests库 + bs4就解决了,再麻烦点就使用selenium解决js的异步 加载问题.相对比较大型的需求才使用框架,主要是便 ...

  4. 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)

    本文为原创博客,仅供技术学习使用.未经允许,禁止将其复制下来上传到百度文库等平台. 目录 网络爬虫框架 网络爬虫的逻辑顺序 网络爬虫实例教学 model main util parse db 再看ma ...

  5. 常用python爬虫框架

    https://www.imooc.com/article/44716 Python中好用的爬虫框架 一般比价小型的爬虫需求,我是直接使用requests库 + bs4就解决了,再麻烦点就使用sele ...

  6. Java常用的四大框架有什么

    我们知道,传统的Java Web应用程序是采用JSP+SERVLET+JAVABEAN来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责前台展示的JSP.负责流程逻辑控制的SER ...

  7. Java常用的序列化框架

    什么时候需要序列化? 当你程序里的对象要存储到硬盘或者通过网络传输的时候,你的对象就需要序列化成二进制字节数组.那么,序列化对我们的程序到底有多大影响,如何判断一个序列化框架的好坏?我们一般从如下几个 ...

  8. java Gecco的爬虫框架的使用

    Gecco是一款用java语言开发的轻量化的易用的网络爬虫. 主要特征: 简单易用,使用jquery的selector风格抽取元素 支持页面中的异步ajax请求 支持页面中的javascript变量抽 ...

  9. Java爬虫框架wemgic_Java爬虫框架-WebMagic挖坑补坑指南

    以前总是用的Python下的Scrapy和crawley和PHP的小众爬虫框架,最近突然想到了何不用下Java下的框架试试? 查了下Java下的爬虫框架自然也不在少数,Nutch,WebMagic,W ...

最新文章

  1. C/C++调用Fortran的使用说明
  2. 使用什么优化器_在机器学习项目中该如何选择优化器?
  3. 关键词词云怎么做_制作CVPR 热词云(并爬取pdf地址 名称)
  4. django mysql数据同步_[django同步数据库]Django去操作已经存在数据的数据库
  5. (转)全文检索技术学习(三)——Lucene支持中文分词
  6. windows下Eclipse调试ffmpeg
  7. linux档案与文件的的压缩与打包
  8. pytorch学习率衰减
  9. bae mysql_获取BAE上的MySQL相关信息
  10. 【VS开发】COM组件技术概述
  11. MFC的坐标转换GetClientRect/GetWindowRect/ClientToScreen/GetCursorPos/ScreenToClient
  12. 用户登录和权限认证之 —— JWT
  13. 自来水管道铺设问题——数学建模
  14. AD20笔记-元器件绘制
  15. 关于网线水晶头的接法详解
  16. 5.1劳动节|致敬每一位数字安全劳动者
  17. POI生成word文档完整案例及讲解
  18. IOS HTTPS 服务器信任评估
  19. 论文阅读_中文医学预训练模型_MC-BERT
  20. Live2D 学习 安装插件

热门文章

  1. ubuntu 20.04.2 LTS 安装WPS
  2. 01 将狼才鲸的嵌入式开源项目仓库链接
  3. 我用 Vue3+Ts+Vite2 写了一个美女小黄站
  4. MS08067 WEB高级攻防实战班第一期 开班啦~(附最新授课目录)
  5. python编写超市销售系统_Python基础项目:超市商品销售管理系统
  6. 计算机网络安规模分类,1计算机网络按规模分类
  7. PhysX物理引擎入门
  8. OpenGL ES EGL eglSwapBuffer
  9. gmssl 生成SM2证书、加密、解密、签名、验签
  10. 产业安全专家谈 | 航空产业驶入数字化快车道,如何升级智慧航空新体验?