有关JSOUP学习分享(一)
其实现在用JSOUP爬虫的也不多了,但是由于最近换公司,做数据爬虫需要用到,就看了下,感觉还是挺好用的,原理什么的感觉和weblogic也差不到哪里去,废话少说,这里就简单的分享下最近接触的干货。
JSOUP实现原理也简单说一下,可能有不对的地方评论欢迎指正。我们可以使用JSOUP直接解析某个URL地址或者指定的HTML文本,将抓取的网页或者文本内容加载到Document中,然后可以针对这个doucument进行解析,选择,利用dom或者css或者匹配正则来获取你需要的内容。下面是我项目脚本的内容部分分享,可以供大家一起参考学习,从浅入深:
第一步:当然是在项目中导入需要的jar包,使用maven管理的可以直接在pom文件里面导,
没有的同学可以去官网下载jar包https://jsoup.org/download。
接下来我们就可以正式开始第一个JSOUP项目抓取工作了
第二步:初始化或者指定url,将内容加载到document并制定编码格式
String url="http://baidu.com.cn"
String result = RequestUtil.doGet(url,"GBK") // println(result);
Document doc = Jsoup.parse(result)
在这里我们可以看到你已经把这个网页内容加载进去了,然后我们可以开始根据需求来抓取需要的数据
第三步:根据需求抓取数据:
我们这里先介绍使用选择器来抓取数据,这里可以利用到网页的dom节点class或者id来抓取文本下的
内容:
1、根据class选择器来选择文本:
doc.select(".head_wrapper")
这里的.head_wrapper就是网页标签的一个类 ,抓取到的文本就是.head_wrapper这个标签及其子节点的里面的内容。
2、根据id选择器来选择文本:
Element link2=doc.select("#css_index_result")
这里选取的是以这个为id的标签内容以及其子节点的所有内容
3、抓取a标签的href:
Elements hrefs = doc.select("a[href]");
4、灵活使用^,$与~分别抓取以什么开头,以什么结尾,正则表达式匹配的内容
//以.com结尾的img标签内容抓取
Elements hrefs = doc.select("img[src$=.com]");
println(hrefs)
//以//www.开头的img标签内容抓取
Elements imgs = doc.select("img[src^=//www.]");
println(imgs)
//正则表达式匹配以png,gif,jpg结尾的img标签抓取
Elements jpgs = doc.select("img[src~=(?i)\\.(png|gif|jpg?g)]");
println(jpgs)
以上抓取的内容可能一条或者多条,多条存放就存放在一个list中,可以遍历这个list查看,ok,这里基础内容写到这里,接下来更新JSOUP学习分享(二),感谢您的阅读
有关JSOUP学习分享(一)的更多相关文章
- ElasticSearch 5学习(7)——分布式集群学习分享2
前面主要学习了ElasticSearch分布式集群的存储过程中集群.节点和分片的知识(ElasticSearch 5学习(6)--分布式集群学习分享1),下面主要分享应对故障的一些实践. 应对故障 前 ...
- ElasticSearch 5学习(6)——分布式集群学习分享1
在使用中我们把文档存入ElasticSearch,但是如果能够了解ElasticSearch内部是如何存储的,将会对我们学习ElasticSearch有很清晰的认识.本文中的所使用的ElasticSe ...
- MySQL学习分享--Thread pool实现
基于<MySQL学习分享--Thread pool>对Thread pool架构设计的详细了解,本文主要对Thread pool的实现进行分析,并根据Mariadb和Percona提供的开 ...
- Jsoup学习总结
Jsoup学习总结 摘要 Jsoup是一款比较好的Java版HTML解析器.可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方 ...
- JavaScript Shell学习分享
目录 JavaScript Shell学习分享 简介 安装 使用原因 小结 JavaScript Shell学习分享 简介 JavaScript Shell是由Mozilla提供的综合JavaScri ...
- python 学习分享-paramiko模块
paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Solaris, BS ...
- Swagger框架学习分享
Swagger框架学习分享 转至元数据结尾 Created and last modified by 刘新宇 大约1分钟曾经 pageId=162045803#page-metadata-start& ...
- Flink 从0到1学习—— 分享四本 Flink 国外的书和二十多篇 Paper 论文
前言 之前也分享了不少自己的文章,但是对于 Flink 来说,还是有不少新入门的朋友,这里给大家分享点 Flink 相关的资料(国外数据 pdf 和流处理相关的 Paper),期望可以帮你更好的理解 ...
- Jsoup 学习笔记
这里写自定义目录标题 Jsoup 学习笔记 解析 HTML 的字符串解析 URL 解析 本地文件解析 解析数据 DOM 解析 使用选择器解析 选择器概述 选择器组合用法 过滤用法 修改数据 HTML ...
随机推荐
- tomcat集群--单tomcat多实例
1.解压apache-tomcat-7.0.75.tar.gz到任意目录 /data/tomcat-4X 2.建立tomcat多实例目录,这个tomcat-4X运行4X应用的两个实例4002,4004 ...
- Linux中vsftpd安装和配置
目录 Redhat/CentOS安装vsftp软件 Ubuntu/Debian安装vsftp软件 Redhat/CentOS安装vsftp软件 1. 安装vsftp $ yum install vsf ...
- 网络最大流dinic模板
#include<iostream> #include<cstdio> #include<cstring> #include<queue> using ...
- MMU的理解
MMU内存管理单元相关知识点总结 1.MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器.物理存储器的控制线路,同时也负责虚 ...
- java面试题汇总(1)
1)Java 中能创建 volatile 数组吗? 能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组.我的意思是,如果改变引用指向的数组, 将会受到 v ...
- 【opencv学习笔记四】opencv3.4.0图形用户接口highgui函数解析
在笔记二中我们已经知道了,在highgui文件夹下的正是opencv图形用户接口功能结构,我们这篇博客所说的便是D:\Program Files\opencv340\opencv\build\incl ...
- win7 x64 eclipse_kepler下编译 hadoop1.1.2-celipse-plugin
1.编译前准备 a) 下载和解压hadoop-1.1.2.tar.gz b) 下载并配置ant 2.配置 a) 进入hadoop-1.1.2\src\contrib ...
- 《深入分析Java Web技术内幕》读后感(Session、cookie)
第10章 P263 理解Cookie 理解Session Session如何工作的
- zoj 3640 Help Me Escape (概率dp 递归求期望)
题目链接 Help Me Escape Time Limit: 2 Seconds Memory Limit: 32768 KB Background If thou doest w ...
- ASP.NET学习笔记(五)ASP 对象
1.ASP Response 对象用于从服务器向用户发送输出的结果. 2.ASP Request 对象用于从用户那里取得信息 Request.QueryString 命令用于搜集使用 method=& ...