📅  最后修改于: 2023-12-03 14:43:35.134000             🧑  作者: Mango
Jsoup 是一款基于 Java 的 HTML 解析器,可以从 URL、文件、字符串中加载 HTML 文档,然后通过选择器 API 进行 DOM 操作。它广泛用于网络爬虫、数据抓取等场景中。
本文将介绍如何使用 Jsoup 从文件中加载 HTML 文档,并进行基本的 DOM 操作。
在开始之前,我们需要确保已经安装好了 JDK 和 Maven,然后通过 Maven 添加 Jsoup 依赖:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
首先,我们需要加载 HTML 文件并解析:
File htmlFile = new File("example.html");
Document doc = Jsoup.parse(htmlFile, "UTF-8");
其中,example.html
是待解析的 HTML 文件,UTF-8
是文件的编码格式。解析后的 doc
对象即代表了整个 HTML 文档。
有了 doc
对象,我们就可以使用 Jsoup 提供的 DOM 操作 API 进行节点选择、属性操作等操作。
比如,假设我们的 example.html
文件内容如下:
<html>
<head>
<title>Example</title>
</head>
<body>
<div id="content">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>
</body>
</html>
我们可以选择 id
为 content
的 div
节点,并获取它下面的所有 p
节点:
Element content = doc.select("#content").first();
Elements paragraphs = content.select("p");
然后,我们可以修改某个 p
节点的文本内容:
Element firstParagraph = paragraphs.first();
firstParagraph.text("New text");
最后,我们可以将修改后的 HTML 内容保存到文件中:
try (PrintWriter writer = new PrintWriter("example_modified.html")) {
writer.println(doc.outerHtml());
}
这会将 doc
对象的整个 HTML 内容输出并保存到 example_modified.html
文件中。
到这里,我们已经成功使用 Jsoup 从文件中加载 HTML 文档,并进行了一些基本的 DOM 操作。当然,Jsoup 还有很多其他的功能和 API,如果感兴趣可以进一步深入学习。