📜  jsoup-从文件加载(1)

📅  最后修改于: 2023-12-03 14:43:35.134000             🧑  作者: Mango

Jsoup 从文件加载

简介

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 文档。

DOM 操作

有了 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>

我们可以选择 idcontentdiv 节点,并获取它下面的所有 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,如果感兴趣可以进一步深入学习。