简单记录一下java项目实现网页爬取数据的基本使用.

需要引入的依赖

<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>

如果引入项目失败可以到GitHub去下载master分支的最新源码,将项目导入到idea之后找到父工程webmagic-parent进行install,然后将target中jar:

webmagic-core-0.8.0.jar、
webmagic-extension-0.8.0.jar

打包到本地仓库即可.maven打包到本地方式可以参考如下:

mvn install:install-file -Dfile="D:\storage\maven_repository\com\us\codecraft\webmagic-core-0.8.0.jar" -DgroupId=us.codecraft -DartifactId=webmagic-core -Dversion=0.8.0 -Dpackaging=jarmvn install:install-file -Dfile="D:\storage\maven_repository\com\us\codecraft\webmagic-extension-0.8.0.jar" -DgroupId=us.codecraft -DartifactId=webmagic-extension -Dversion=0.8.0 -Dpackaging=jar

jar存储目录:D:\storage\maven_repository\us\codecraft\0.8.0,然后从该目录下执行上面命令.
D:\storage\maven_repository\com\us\codecraft为jar安装目录.

WebMagic使用说明:http://webmagic.io/docs/zh/posts/ch1-overview/

常用获取标签内容以及属性方法参考下面:

html<a href='www.some.com'><span>hello </span>world</a>#获取a标签下的文本xpath("//a/text()") # world#获取a标签以及子标签中的内容xpath("//a//text()") # hello world#获取a标签中的连接xpath("//a/@href") # www.some.com即获取标签属性值 (位置/@属性)

更多xpath使用说明:https://www.runoob.com/xpath/xpath-examples.html

以下是获取网页上昵称的demo:

public class MyPageProcessor implements PageProcessor {private Site site = Site.me().setRetryTimes(3).setSleepTime(100);// 存储获取的昵称private static List<String> nickNameList=new ArrayList<>();@Overridepublic void process(Page page) {//对抓取到的页面进行处理page.putField("value",page.getHtml().xpath("//p//text()").all());int a=0;// 组装数据nickNameList.addAll(Collection.class.cast(page.getResultItems().getAll().get("value")));}@Overridepublic Site getSite() {return site;}public static void main(String[] args) {//创建爬虫Spider.create(new MyPageProcessor())            //将创建好的PageProcessor页面处理器交给Spider.addUrl("https://www.qiwangming.com/wm/haoting/4583.html")   //输入url//.addPipeline(new FilePipeline())          //设置结果 保存到文件
//                .addPipeline(new ConsolePipeline())         //设置结果 控制台输出//.addPipeline(new JsonFilePipeline())        //设置结果 以Json格式输出//当没有设置结果输出时 默认控制台输出
//                .thread(5)                  //设置5个线程同时执行.run();                   //启动爬虫System.out.println("输出内容:"+MyPageProcessor.nickNameList);}
}

输出内容:

输出内容:[ 漫步云中月,  关于你,  触摸的星光,  踏雪无痕,  但愿,  藏在云里的喜欢,  美梦收藏家,  趁月色还在,  倾听寂寞,  独往归途,  扬花落满肩,  人间烟火,  ,  微云淡月,  山月记,  追逐我的明天。,  染指流年,  且听且行,  簡單陪絆,  你如温阳,  梦里七彩虹,  闻风丧破胆,  初雪未霁,  偏于谁,  暖光的惆怅,  你眼里的雾,  恰上心头,  长得帅会喊麦,  初夏的雨,  望断归来路,  终于说出口,  故事讲完,  云淡风轻,  怀抱清风,  落梅香带雪,  泪染裳,  佯装执着,  深爱不腻,  月亮魔法,  笑眼迷人,  顾北清歌寒,  难能心动,  世俗眼光,  满是欢喜,  月亮遮住脸,  莫洛曾过往,  难得一生,  往复随安,  笑弄清风,  枯守一座城,  南风向北,  草莓仙,  一池喜欢,  起舞弄影,  寒橘,  沧桑为饮,  雨下的芭蕉,  绝世的容颜,  从心动到古稀,  时光旅行者,  风中的歌声,  凡尘一梦,  繁星画作泥尘,  眉黛浅,  旧城的伤,  掌握梦想,  云深不知处,  证明给你看,  笔尖微凉,  一纸水与青,  望一片星辰,  北巷长歌悠,  饮惯烈酒,  泪水中成长,  遙遙無歸期,  灵感集市,  等风醒来,  山水几相逢,  如初不遇,  心动甜甜圈,  山后别相逢,  北葵向暖,  与我何干,  你不好看,  笑中带伤,  清风徐来,  光辉时刻,  稳做枕边人,  你是柔风,  随风远走,  煙雨霓裳,  孤魂伴野鬼,  澄澈的眼,  绿杨堤黄鸟,  迷上书甜,  恬淡春风,  许你春夏,  余情已逝,  人间惊鸿宴,  碎了星光一地,  椰果味的牛奶,  湛蓝星空,  躺在你的梨涡里,  一曲墨白,  光辉终结,  追尾的猫,   |  |  ,  copyright © 2018-2020   ]

如果不确定页面的标签位置可以查看网页源码格式化,在线格式化网页代码:http://www.wetools.com/html-formatter

基于java的爬虫框架webmagic基本使用相关推荐

  1. java爬虫框架—WebMagic

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

  2. 爬虫框架webmagic与spring boot的结合使用--转

    原文地址:http://www.jianshu.com/p/c3fc3129407d 1. 爬虫框架webmagic WebMagic是一个简单灵活的爬虫框架.基于WebMagic,你可以快速开发出一 ...

  3. 网络爬虫框架Webmagic

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

  4. 9个基于Java的搜索引擎框架

    9个基于Java的搜索引擎框架 转自:http://blog.csdn.net/xiaomin1991222/article/details/50980573 1.Java 全文搜索引擎框架 Luce ...

  5. javaml_一些基于Java的AI框架:Encog,JavaML,Weka

    javaml 在进行编程收集情报工作时,我发现自己花了很多时间将Python代码转换为Java,通常对我的进度缓慢感到不耐烦,所以我一直在寻找替代方法. 我发现3: Encog – Heaton研究 ...

  6. 一些基于Java的AI框架:Encog,JavaML,Weka

    在进行编程收集情报工作时,我发现自己花了很多时间将Python代码转换为Java,由于通常对我的进度缓慢感到不耐烦,所以我一直在寻找替代方法. 我发现3: Encog – Heaton研究 Java语 ...

  7. Java开源爬虫框架crawler4j

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

  8. 基于JAVA(Springboot框架)助农商城平台系统设计与实现 毕业设计开题报告

      本科生毕业论文 基于JAVA(Springboot框架)助农商城平台 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科生毕业 ...

  9. 基于Java(SSH 框架)+MySQL 实现的物流配送管理系统【100010488】

    基于 Java 中 SSH 框架的物流配送管理系统 项目各文件介绍 Logistics_Manage_System 项目主文件,也就是该项目你需要导入运行的文件 hibernate_mapping 这 ...

最新文章

  1. CF949C Data Center Maintenance(建图+强联通分量)
  2. 英伟达发布新型GAN,豹子秒变沙皮狗!| 技术头条
  3. 创建Material Design风格的Android应用--使用Drawable
  4. py编程技巧-1.5-如何快速找到多个字典的公共键(key)
  5. 比特币耶稣Roger Ver:比特币现金是比特币扩容问题的答案
  6. jQuery 图片滚动效果
  7. java 静态方法中为什么不可以使用关键字this _super_Java static方法里为什么不能使用this关键字,和Super...
  8. luogu P3786 萃香抱西瓜
  9. C语言学习之求两个整数的最大值
  10. python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...
  11. js实现sqrt开方函数(二分法)
  12. UVA 297 Quadtrees
  13. CentOS依赖包查找工具(https://centos.pkgs.org)
  14. 计算机二级-C语言-对标志位的巧妙使用。对二维数组数据进行处理。对文件进行数据输入。...
  15. 求大于某数的最小素数Python版
  16. 收到一个神盾局的offer,怎么样?
  17. 网络宽带和实际下载速度单位换算详解:
  18. #windowsxpsp3系统MS10-046漏洞测试
  19. 【檀越剑指大厂--ElasticSearch】ElasticSearch进阶
  20. Java之Scanner类用法

热门文章

  1. hdu 3509 Buge's Fibonacci Number Problem(矩阵乘法+二项式)
  2. 一文透析华为鸿蒙科技含量!华为的创新必将刺激国内外巨头跟进
  3. java初级能干什么_小黄鸭系列java基础知识 | java能干什么?
  4. IIS配置共享Session会话
  5. 浅析区块链应用系统——区块链追踪溯源应用
  6. 视在功率、功率因数、额定功率的初步了解
  7. Text-to-SQL---RAT-SQL模型
  8. 按键游侠脚本引擎 v1.0 免费下载--IT man
  9. 校园论坛(Java)—— 数据报表模块
  10. [转帖]软盘修复、数据恢复全攻略