jsoup 是一款 Java 的 HTML 解析器,可直接解析HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。
jsoup API文档:http://tool.oschina.net/apidocs/apidoc?api=jsoup-1.6.3
jsoup的作用:
1、可以根据URL、本地文件和字符串解析HTML的内容
2、可以使用DOM、JQuery选择器来查找获取元素
3、可以操作元素、文本、属性
maven依赖:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.8.3</version>
</dependency>
jsoup继承的层次结构:
Document对象(一个文档的对象模型):文档由多个Elements、TextNodes、其他辅助nodes组成。继承关系如上图所示。
一、从字符串中解析html内容
无论html内容是否完整,它可以处理:
a、没有关闭的标签
b、隐式标签
c、创建可靠的文档结构,html中包含head和body。
1、处理不完整的html内容
public static void main(String[] args) {
//不完整的html内容
String html="<div><a href=\"www.baidu.com\"><h1>你好 JSOUP";
Document doc= Jsoup.parseBodyFragment(html);
//第二种方式
//Document doc=Jsoup.parse(html);
//获取body的所有子元素
System.out.println(doc.body());
}
结果:
<body>
<div>
<a href="www.baidu.com"><h1>你好 JSOUP</h1></a>
</div>
</body>
parseBodyFragment()方法创建一个空壳的文档,并将解析的html内容放到body中。可以保证用户提供的html内容可以被解析为body元素。
parse(html,baseUri)能够将html解析为一个文档document,参数baseUri将相对路径转为绝对路径。