android jsoup简书,爬虫之Jsoup
Jsoup简介
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。官网:https://jsoup.org/
主要功能
从一个URL,文件或字符串中解析HTML
使用DOM或CSS选择器来查找、取出数据使用DOM或CSS选择器来查找、取出数据
可操作HTML元素、属性、文本可操作HTML元素、属性、文本
注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。
Maven依赖关系
org.jsoup
jsoup
1.11.3
jsoup api
6个包提供用于开发jsoup应用程序的类和接口。
org.jsoup
org.jsoup.examples
org.jsoup.helper
org.jsoup.nodes
org.jsoup.parser
org.jsoup.safety
org.jsoup.salect
主要类:
Jsoup 类提供了连接,清理和解析HTML文档的方法
Document 获取HTML文档
Element 获取、操作HTML节点
简单学习
三种加载HTML的方法
@Test
public void test1() throws IOException {
//从URL加载HTML
Document document = Jsoup.connect("http://www.baidu.com").get();
String title = document.title();
//获取html中的标题
System.out.println("title :"+title);
//从字符串加载HTML
String html = "
First parse"
+ "
Parsed HTML into a doc.
";
Document doc = Jsoup.parse(html);
title = doc.title();
System.out.println("title :"+title);
//从文件加载HTML
doc = Jsoup.parse(new File("F:\\jsoup\\html\\index.html"),"utf-8");
title = doc.title();
System.out.println("title :"+title);
}
获取html中的head,body,url等信息
@Test
public void test2() throws IOException {
Document document = Jsoup.connect("http://www.baidu.com").get();
String title = document.title();
System.out.println("title :"+title);
//获取html中的head
System.out.println(document.head());
//获取html中的body
//System.out.println(document.body());
//获取HTML页面中的所有链接
Elements links = document.select("a[href]");
for (Element link : links){
System.out.println("link : "+ link.attr("href"));
System.out.println("text :"+ link.text());
}
}
获取URL的元信息
@Test
public void test3() throws IOException {
Document document = Jsoup.connect("https://passport.lagou.com").get();
System.out.println(document.head());
//获取URL的元信息
String description = document.select("meta[name=description]").get(0).attr("content");
System.out.println("Meta description : " + description);
String keywords = document.select("meta[name=keywords]").first().attr("content");
System.out.println("Meta keyword : " + keywords);
}
根据class名称获取表单
@Test
public void test4() throws IOException {
Document document = Jsoup.connect("https://passport.lagou.com/login/login.html?signature=8ECBCDF2B86061432B425A0B94FC863B&service=https%253A%252F%252Fwww.lagou.com%252F&action=login&serviceId=lagou&ts=1547711303033").get();
//获取拉勾网登入页面的body
//System.out.println(document.body());
//根据class名称获取表单
Elements formElement = document.getElementsByClass("form_body");
System.out.println(formElement.html());
//获取URL的元信息
for (Element inputElement : formElement) {
String placeholder = inputElement.getElementsByTag("input").attr("placeholder");
System.out.println(placeholder);
}
}
提取并打印表单参数
@Test
public void test5() throws IOException {
Document document = Jsoup.parse(new File("F:\\jsoup\\html\\login.html"),"utf-8");
Element loginform = document.getElementById("registerform");
Elements inputElements = loginform.getElementsByTag("input");
for (Element inputElement : inputElements) {
String key = inputElement.attr("name");
String value = inputElement.attr("value");
System.out.println("Param name: "+key+" -- Param value: "+value);
}
}
设置元素的html内容
@Test
public void test6() throws IOException {
Document document = Jsoup.parse(new File("F:\\jsoup\\html\\index.html"),"utf-8");
System.out.println(document.body());//
System.out.println("*************");
Element div = document.select("div").first();
div.html("
Hello
"); //
Hello
div.prepend("
Fiest
"); //
Fiest
Hello
div.append("
Last
"); //
Fiest
Hello
Last
System.out.println(document.body());
System.out.println("*************");
System.out.println(div.text());
System.out.println("*************");
//对元素包裹一个外部HTML内容
div.wrap("
Fiest
Hello
Last
System.out.println(document.body());
}
设置元素的文本内容
@Test
public void test7() throws IOException {
Document document = Jsoup.parse(new File("F:\\jsoup\\html\\index.html"),"utf-8");
System.out.println(document.body());//
System.out.println("*************");
Element div = document.select("div").first();
div.text("7 > 8 "); //
div.prepend("Fiest "); //
div.append("Last "); //
System.out.println(document.body());
System.out.println("*************");
System.out.println(div.text());
}
android jsoup简书,爬虫之Jsoup相关推荐
- android jsoup简书,jsoup爬虫简书首页数据做个小Demo
昨天LZ去面试,遇到一个大牛,被血虐一番,发现自己基础还是很薄弱,对java一些原理掌握的还是不够稳固,比如java反射注解,知道一点就是说不出来,很尴尬... 生命不止,学习不止啊 之前那个项目 Q ...
- android计步器简书,自定义View-仿QQ运动步数进度效果
自定义View-仿QQ运动步数进度效果 一.写在前面 (1) 图一,仿QQ步数运行效果 (2) 图二,完整的圆效果 完整代码请看这 二.正文开始 (1)首先来个三部曲,自定义属性,布局设置,属性获取 ...
- android 仿简书评论,Android 开发仿简书登录框可删除内容或显示密码框的内容
简书App 是我很喜欢的一款软件.今天就模仿了一下他的登录框.先上图: 好了下面上代码,自定义ImgEditText 继承与EditText.重写一些方法. package lyf.myimgedit ...
- android 仿简书评论,Android仿简书搜索框效果的示例代码
前言 之前用简书的时候一直是在web端,后来下载了客户端,看到了搜索的那个动画,就尝试的去写了,没写之前感觉挺容易的,写了之后,就感觉里面还是有些要注意的东西的.话不多说,直接上图. Activity ...
- Android仿简书、淘宝等APP View弹出效果
在用简书App的时候觉得这个View的弹出效果特别好,而且非常平滑. 先看看效果: 主要是scale,alpha,translation几个普通动画组合,这里不再分析. 实现效果图: 代码:https ...
- android仿简书编辑器,类似zine,简书的app移动编辑器-Light Seven
原标题:类似zine,简书的app移动编辑器-Light Seven 无论你是否从事文字编辑工作,我相信每个人都会接触到文字编辑.既然接触到文字编辑,顺理成章的就会接触到文字编辑的应用和软件. 在生活 ...
- android jsoup简书,Jsoup学习及使用
* Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容. 它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操 ...
- android 心跳 简书,如何高效维持网络长连接:手把手教你实现 自适应的心跳保活机制...
前言 当实现具备实时性需求时,我们一般会选择长连接的通信方式 而在实现长连接方式时,存在很多性能问题,如 长连接保活 今天,我将 手把手教大家实现自适应的心跳保活机制,从而能高效维持长连接 目录 示意 ...
- android profiler 简书,使用AndroidStudio提供的Android Profiler工具和mat进行内存泄漏分析...
废话不多说直接说流程 给项目中集成LeakCanary工具进行内存泄漏检测.发现有内存泄漏后该工具会进行提示 有内存泄露后我们需要使用as的profiler工具进行分析并获取到.hprof文件,步骤如 ...
最新文章
- 一线大厂的分布式唯一ID生成方案是什么样的?
- mysql之 表数据存放路径非datadir目录
- java基础--集合Connection/Map
- Python进阶10-标准库介绍01
- 实战项目一:爬取西刺代理(获取代理IP)
- Springboot制作小网盘系统(小项目)
- mysql 常用命令 汇总
- 长安大学微型计算机原理与接口技术答案,长安大学微机原理与接口技术AB卷试题与答案.doc...
- 规则引擎Drools简述
- Linux : SSHD服务
- 2018-8-10-WPF-修改图片颜色
- 解决XP IIS连接访问人数限制的问题
- Parcel 中文文档 | Parcel 中文网
- 李秘书讲写作:我讲写作课你愿意听吗
- Hutool - 对于网络的一些方法和增强
- pygame中blit()的参数的说明以及脏矩形动画形成的简要说明
- react上拉加载更多
- 英语六级(词组、同义替换)
- Java二维数组详解:二维数组的声明和初始化,以及获取二维数组的值
- Ant Trip(HDU 3018)---多笔画问题
热门文章
- 平安科技有新招:游戏防沉迷更彻底
- [solution]淘宝首页可以ping通但是打不开
- 如果用户希望将自己计算机中的照片,信息技术会考模拟题共31套的选择三
- c语言二进制转八进制数
- iis站点https绑定
- GitHub上史上最全的Android开源项目分类汇总
- 东北大学计算机衰落,中国“最悲情”的3所985大学,实力衰落严重,如今惨遭“降级”...
- 随笔-年薪百万就从小事做起
- 《软件方法》自测题解析011-梅西和帕瓦罗蒂
- 计算机毕业设计JavaSEOUL设计师品牌代购商城(源码+系统+mysql数据库+lw文档)