Jsoup Java 教程:完整指南与实战示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Jsoup Java 教程:HTML 解析完全指南

1. 什么是 Jsoup?为什么需要它?

Jsoup 是一个功能强大且易于使用的 Java 开源库,专门用于解析、提取和操作 HTML 文档。它为开发者提供了简洁直观的 API,让你像在浏览器中操作 DOM 树一样轻松处理 HTML。如果你曾经为了从网页中提取数据而编写正则表达式,就会知道那种方案是多么脆弱且难以维护。Jsoup 通过提供可靠而灵活的工具,完美解决了这个问题。

Jsoup 的核心功能是 HTML 解析。它可以接收字符串、URL 或文件作为输入,并将其转换为文档对象模型(DOM)。之后,你可以使用 CSS 选择器(类似 jQuery)或 DOM 树遍历来查找和提取特定元素、它们的属性以及文本内容。此外,Jsoup 还能清理 HTML 中的潜在危险元素(例如 XSS 攻击),并支持文档修改:添加、删除或更改标签及其内容。

为什么需要它?Jsoup 的应用场景非常广泛:从编写简单的数据采集爬虫和价格监控,到构建复杂的内容分析系统、Web 应用测试以及与 CMS 集成。Jsoup 是 Java 世界中处理 HTML 的事实标准,对于任何涉及 Web 技术的 Java 开发者来说,掌握它都是必备技能。

2. Jsoup 安装方法

Jsoup 以 JAR 文件形式分发,但最简便的方式是通过构建工具引入。以下是 Maven 和 Gradle 的配置命令。

Maven (pom.xml)

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.17.2</version>
</dependency>

Gradle (build.gradle)

implementation 'org.jsoup:jsoup:1.17.2'

如果你不使用构建工具,可以从 官方网站 下载 JAR 文件,并将其添加到项目的 classpath 中。

3. 快速上手:最小化工作示例

让我们编写一个最简单的程序,加载 Google 首页并输出其标题。

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class QuickStart {
    public static void main(String[] args) throws Exception {
        // 1. 通过 URL 加载 HTML 文档
        Document doc = Jsoup.connect("https://www.google.com").get();

        // 2. 提取页面标题(<title> 标签的内容)
        String title = doc.title();

        // 3. 输出结果
        System.out.println("页面标题: " + title);
    }
}

这段代码向指定 URL 发送 HTTP GET 请求,解析返回的 HTML,并返回一个 Document 对象。方法 title() 是获取 <title> 标签内容的便捷方式。输出结果类似于:页面标题: Google。

4. Jsoup 核心方法与类

下面介绍库中的关键类和方法。所有示例均假设你已经导入了 org.jsoup.Jsoup 和 org.jsoup.nodes.*。

4.1. Jsoup.connect(String url)

方法签名: public static Connection connect(String url)

功能说明: 创建到指定 URL 的新 HTTP 连接。返回一个 Connection 对象,通过它可以配置请求参数(如超时、请求头等),并最终执行请求获取文档。

推荐