一想到做爬虫大家第一个想到的语言一定是python,毕竟python比方便,而且最近也非常的火爆,但是python有一个全局锁的概念新能有瓶颈,所以用java还是比较牛逼的,

webmagic 官网 https://webmagic.io/ 讲的非常详细,当然java比较优秀的框架还有很多不知这些

各类JAVA爬虫框架

Python中大的爬虫框架有scrapy(风格类似django),pyspider(国产python爬虫框架)。
除了Python,Java中也有许多爬虫框架。

  • nutch

apache下的开源爬虫程序,功能丰富,文档完整,有数据抓取解析以及存储的模块。
它的特点是规模大。

  • heritrix

比较成熟
地址:internetarchive/heritrix3 · GitHub很早就有了,经历过很多次更新,使用的人比较多,功能齐全,文档完整,网上的资料也多。有自己的web管理控制台,包含了一个HTTP 服务器。操作者可以通过选择Crawler命令来操作控制台。

  • crawler4j

UCI大学(加利福尼亚欧文分校)出品,简洁,古老,结构清晰

  • webmagic

国产,借鉴了scrapy,有pipeline,功能比较简单。Request也有meta属性,meta属性是一个字典,meta属性的value是Object类型

具体参考 https://www.cnblogs.com/weiyinfu/p/8099605.html

使用问题

  1. 下载maven依赖
<!--爬虫框架--><dependency><groupId>us.codecraft</groupId><artifactId>webmagic-core</artifactId><version>0.7.3</version></dependency><dependency><groupId>us.codecraft</groupId><artifactId>webmagic-extension</artifactId><version>0.7.3</version></dependency>
注意这里0.7.3是maven目前最新版本但是有个问题没有修复,运行回报java.net.SSL异常,需要去webmagic官网下载最新源码然后自己构建webmagic-core这个包代替maven仓库的才会正常运行

首页 去https://github.com/code4craft/webmagic 下载最新master源码

然后IDEA打开项目 会自动下载maven项目依赖如

然后IDEA运行mvn install 构建每个模块找到webmagic-parent最开始的进行构建

如上图如果构建成功会重新打包webmagic-core的jar,然后我们把这个jar安装到我们本地的maven仓库替换掉原来下载的webmagic-core-0.7.6.jar

通过maven以下命令安装本地

mvn install:install-file -Dfile=webmagic-core-0.7.3.jar -DgroupId=us.codecraft -DartifactId=webmagic-core -Dversion=0.7.3 -Dpackaging=jar

其中-Dfile参数是你新构建的webmagic-core的jar包路径

  1. 最新版的webmagic0.7.3 使用了slfj+Log4j2日志你需要自己定义初始化log4j日志属性文件否则日志会报错

在maven项目resources目录新建

声明日志输出等级,位置,样式,才能正常运行

开始使用

WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。WebMagic的设计参考了Scapy,但是实现方式更Java化一些。

而Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心。

WebMagic总体架构图如下:

我们只用写自己的PageProcessor实现PageProcessor接口就行

package com.kenx;import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;public class BlogPageProcessor implements PageProcessor {private Site site = Site.me();@Overridepublic void process(Page page) {}@Overridepublic Site getSite() {return site;}public static void main(String[] args) {Spider.create(new BlogPageProcessor()).addUrl("http://juejin.im/post/5e216eda6fb9a0300e1617eb").run();}}

通过Spider入口运行自己写的PageProcessor就可以启动爬虫到这来就完美结束

详细官网文档 http://webmagic.io/docs/zh/posts/ch1-overview/architecture.html

案例

JAVA 爬虫框架webmagic 初步使用Demo相关推荐

  1. java爬虫框架—WebMagic

    什么是网络爬虫 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满 ...

  2. Java爬虫框架WebMagic简介及使用

    一.介绍 ​ webmagic的是一个无须配置.便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫.webmagic采用完全模块化的设计,功能覆盖整个爬虫的生命周期(链接提取 ...

  3. Java爬虫框架WebMagic

    WebMagic的架构设计参照了Scrapy,而实现则应用了HttpClient.Jsoup等Java成熟的工具. WebMagic由四个组件(Downloader.PageProcessor.Sch ...

  4. java爬虫框架(java爬虫框架webmagic)

    Java页面框架有哪些呢? 主要应用技术:EJB等出处:java.sun.com/blueprints/code/index.简述:这是SUN在展示J2EE平台时所用的例子PetStore(宠物商店系 ...

  5. JAVA爬虫框架WebMagic爬取ajax请求的页面数据

    查看WebMagic文档:http://webmagic.io/docs/zh/posts/ch1-overview/ 爬取网址需要翻墙: https://www.reddit.com/r/funny ...

  6. java爬虫框架之webMagic

    webMagic框架 前言 介绍 案例 控制类: 解析类: 持久化类: 用到的工具类以及配置类: 注意事项 后语 前言 文章仅供安全领域的朋友学习使用!! 严禁做违法违纪的事情,责任自负 介绍 Web ...

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

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

  8. Java爬虫框架之WebMagic的学习总结

    Java爬虫框架之WebMagic WebMagic 概述 特性 架构 四大组件 数据流转对象 控制爬虫运转的引擎Spider WebMagic的基本使用 添加WebMagic的核心与扩展依赖 爬虫实 ...

  9. 网络爬虫框架Webmagic

    1 谈谈网络爬虫 1.1 什么是网络爬虫 在大数据时代,信息的采集是一项重要的工作,而互联网中的数据是海量的,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高.如何自动高效地获取互联网中我 ...

最新文章

  1. 对于生活服务小公司网站的看法
  2. LeetCode Count Primes
  3. 威联通nas怎么更换大硬盘_QNAP NAS在线RAID组态迁移及在线RAID容量扩充教程
  4. ue4 classuobject没有成员beginplay_给社团新成员准备的教学大纲
  5. 机器学习是如何改善企业生产力的?(内附机器智能版图)
  6. eclipse导入源码
  7. 云访问安全代理(CASB)行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  8. PAL文件(Palette,调色板)及格式
  9. 性能测试基础知识-测试指标(转载自阿里云)
  10. 一键快速设置图层lisp程序_CAD快速切换图层LISP代码问题
  11. ubuntu 16:使用系统自带的中文输入法
  12. ElasticSearch教程——proximity match 近似匹配
  13. 国泰君安国际助力智加科技加速全球商业化布局
  14. [玩转UE4/UE5动画系统>应用篇>功能模块] 之 ALS V4地面站立动作状态机详解
  15. 华为NE5000E集群路由器荣获InfoVision奖
  16. 江苏2020高中计算机学业水平,2020江苏高中学业水平测试时间安排表
  17. 信息与网络安全复习(四)——无线网络安全与DES算法
  18. Python爬虫-DAY5淘宝页面爬取
  19. 数据结构-线性表-串
  20. Photoshop 2020MAC最新版下载地址 一键安装

热门文章

  1. ExtJs6 路由有参无参使用方式
  2. Android Studio butterknife配置使用
  3. 基于matlab的低通滤波器,基于Matlab Guide的低通滤波器设计
  4. unity编辑器筛选或修改资源属性
  5. vs2012 access数据库 crystalreport
  6. 局域网安全防护技术(内网)
  7. 团队合作,帮助他人的方式
  8. 连锁药店现状和信息化建设思路
  9. java 爬取百度云盘,htmlunit 爬取百度云资源
  10. 贝叶斯公式与随机点名中的学生可信度