基于java的爬虫框架webmagic基本使用
简单记录一下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基本使用相关推荐
- java爬虫框架—WebMagic
什么是网络爬虫 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满 ...
- 爬虫框架webmagic与spring boot的结合使用--转
原文地址:http://www.jianshu.com/p/c3fc3129407d 1. 爬虫框架webmagic WebMagic是一个简单灵活的爬虫框架.基于WebMagic,你可以快速开发出一 ...
- 网络爬虫框架Webmagic
1 谈谈网络爬虫 1.1 什么是网络爬虫 在大数据时代,信息的采集是一项重要的工作,而互联网中的数据是海量的,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高.如何自动高效地获取互联网中我 ...
- 9个基于Java的搜索引擎框架
9个基于Java的搜索引擎框架 转自:http://blog.csdn.net/xiaomin1991222/article/details/50980573 1.Java 全文搜索引擎框架 Luce ...
- javaml_一些基于Java的AI框架:Encog,JavaML,Weka
javaml 在进行编程收集情报工作时,我发现自己花了很多时间将Python代码转换为Java,通常对我的进度缓慢感到不耐烦,所以我一直在寻找替代方法. 我发现3: Encog – Heaton研究 ...
- 一些基于Java的AI框架:Encog,JavaML,Weka
在进行编程收集情报工作时,我发现自己花了很多时间将Python代码转换为Java,由于通常对我的进度缓慢感到不耐烦,所以我一直在寻找替代方法. 我发现3: Encog – Heaton研究 Java语 ...
- Java开源爬虫框架crawler4j
花了两个小时把Java开源爬虫框架crawler4j文档翻译了一下,因为这几天一直在学习Java爬虫方面的知识,今天上课时突然感觉全英文可能会阻碍很多人学习的动力,刚好自己又正在接触这个爬虫框架,所以 ...
- 基于JAVA(Springboot框架)助农商城平台系统设计与实现 毕业设计开题报告
本科生毕业论文 基于JAVA(Springboot框架)助农商城平台 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学本科生毕业 ...
- 基于Java(SSH 框架)+MySQL 实现的物流配送管理系统【100010488】
基于 Java 中 SSH 框架的物流配送管理系统 项目各文件介绍 Logistics_Manage_System 项目主文件,也就是该项目你需要导入运行的文件 hibernate_mapping 这 ...
最新文章
- CF949C Data Center Maintenance(建图+强联通分量)
- 英伟达发布新型GAN,豹子秒变沙皮狗!| 技术头条
- 创建Material Design风格的Android应用--使用Drawable
- py编程技巧-1.5-如何快速找到多个字典的公共键(key)
- 比特币耶稣Roger Ver:比特币现金是比特币扩容问题的答案
- jQuery 图片滚动效果
- java 静态方法中为什么不可以使用关键字this _super_Java static方法里为什么不能使用this关键字,和Super...
- luogu P3786 萃香抱西瓜
- C语言学习之求两个整数的最大值
- python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...
- js实现sqrt开方函数(二分法)
- UVA 297 Quadtrees
- CentOS依赖包查找工具(https://centos.pkgs.org)
- 计算机二级-C语言-对标志位的巧妙使用。对二维数组数据进行处理。对文件进行数据输入。...
- 求大于某数的最小素数Python版
- 收到一个神盾局的offer,怎么样?
- 网络宽带和实际下载速度单位换算详解:
- #windowsxpsp3系统MS10-046漏洞测试
- 【檀越剑指大厂--ElasticSearch】ElasticSearch进阶
- Java之Scanner类用法
热门文章
- hdu 3509 Buge's Fibonacci Number Problem(矩阵乘法+二项式)
- 一文透析华为鸿蒙科技含量!华为的创新必将刺激国内外巨头跟进
- java初级能干什么_小黄鸭系列java基础知识 | java能干什么?
- IIS配置共享Session会话
- 浅析区块链应用系统——区块链追踪溯源应用
- 视在功率、功率因数、额定功率的初步了解
- Text-to-SQL---RAT-SQL模型
- 按键游侠脚本引擎 v1.0 免费下载--IT man
- 校园论坛(Java)—— 数据报表模块
- [转帖]软盘修复、数据恢复全攻略