jsoup是一个用于解析、提取、操作HTML的开源Java函式库。在我眼里就是一个java版本的jquery,非常强大!!! jsoup在2009年由亚马逊软件开发经理Jonathan Hedley所编写。他在MIT许可(类似知识共享授权条款的宽松自由软件授权条款)下发布的。 Hedley编写jsoup的用意在于“处理所有种类的HTML。从原始和验证,到无效标签汤。
mvn依赖最新版本在这里找:https://mvnrepository.com/artifact/org.jsoup/jsoup 当前的最新版本是
org.jsoup
jsoup
1.14.3
Jsoup解析方法
Jsoup支持四种方式解析Document,即可以输入四种内容得到一个Document:
- 解析字符串
- 解析body片段
- 从一个URL解析
- 从一个文件解析
本节转载自:- https://www.cnblogs.com/youyoui/p/11065923.html
字符串解析示例字符串中必须包含head和body元素。
String html = "First parse"
+ "Parsed HTML into a doc.
";
Document doc = Jsoup.parse(html);
HTML片段解析
String html = "Lorem ipsum.
";
Document doc = Jsoup.parseBodyFragment(html);
Element body = doc.body();
从URL解析
Document doc = Jsoup.connect("http://example.com/").get();
String title = doc.title();
还可以携带cookie等参数:
Document doc = Jsoup.connect("http://example.com")
.data("query", "Java")
.userAgent("Mozilla")
.cookie("auth", "token")
.timeout(3000)
.post();
从文件解析
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
实战
全部API我就不列出来了,可以到 https://jsoup.org/查阅。我只列出我常用的。
大多数的写法与jquery类似,根据IDEA的智能提示就可以直接按jquery的写法处理了。
找出class="ewb-info-item2"
所有元素
Document document = Jsoup.parse(htmlSource);
Elements lis = document.getElementsByClass("ewb-info-item2");
System.out.println(lis);
获取所有子div
Elements divs = li.getElementsByTag("div");
参考
- https://zh.wikipedia.org/zh-cn/Jsoup
- https://jsoup.org/
- https://www.cnblogs.com/youyoui/p/11065923.html
关注
打赏