Jsoup概述,一款好用的HTML解析器
jsoup是一个用于处理HTML的Java库。它提供了一个非常方便的API,可以对HTML5 DOM方法和CSS选择器进行获取URL、提取和操作数据等操作。在java中常用于爬取想要的数据
Jsoup优点
jsoup实现了WHATWG HTML5规范。
通过Maven安装依赖
<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.3</version>
</dependency>
Jsoup类的重要类
1.org.jsoup.Jsoup类
Jsoup类是任何Jsoup程序的入口点,并将提供从各种来源加载和解析HTML文档的方法。
方法 | 描述 |
---|---|
static Connection connect(String url) |
创建并返回URL的连接。 |
static Document parse(File in, String charsetName) |
将指定的字符集文件解析成文档。 |
static Document parse(String html) |
将给定的html代码解析成文档。 |
static String clean(String bodyHtml, Whitelist whitelist) |
从输入HTML返回安全的HTML,通过解析输入HTML并通过允许的标签和属性的白名单进行过滤。 |
2.org.jsoup.nodes.Document类
该类表示通过Jsoup库加载HTML文档。可以使用此类执行适用于整个HTML文档的操作。Document类官方文档
3.org.jsoup.nodes.Element类
HTML元素是由标签名称,属性和子节点组成。 使用Element类,您可以提取数据,遍历节点和操作HTML。Element类官方文档
通过HTML字符串获取
使用方法:Jsoup.parse(String html)
Jsoup.parse(String html, String baseUri)
String html = "<html><head><title>First parse</title></head>"
+ "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
通过URL获取HTML
使用方法:Jsoup.connect(String url)
Document doc = Jsoup.connect("http://example.com/").get();
该方法创建一个新的 ,并获取并解析一个 HTML 文件。如果在获取 URL 时发生错误,它将抛出一个 异常connect(String url)
Connection``get()``IOException
该接口设计用于方法链接以构建特定请求:Connection
Document doc = Jsoup.connect("http://example.com")
.data("query", "Java")
.userAgent("Mozilla")
.cookie("auth", "token")
.timeout(3000)
.post();
此方法仅支持 Web URL(和协议);如果需要从文件加载,请改用该方法。http
https
parse(File in, String charsetName)
通过文件获取HTML
Document parse = Jsoup.parse(new File("D:\\JAVAWEB\\index.html"), "utf-8");
解析获取HTML字符串内的内容
String html = "<html><head><title>First parse</title></head>"
+ "<body><p>Parsed HTML into a doc.</p></body></html>";
Document parse = Jsoup.parse(html);
System.out.println(parse.html());
System.out.println("=====================");
System.out.println(parse.body());
System.out.println("=====================");
System.out.println(parse.title());
控制台输出
<html>
<head>
<title>First parse</title>
</head>
<body>
<p>Parsed HTML into a doc.</p>
</body>
</html>
=====================
<body>
<p>Parsed HTML into a doc.</p>
</body>
=====================
First parse