JSOUP 使用教程

JSOUP 使用教程


1. 什么是 Jsoup?

Jsoup 是一个用于解析和操作 HTML 文档的 Java 库。它可以帮助你:

  • 提取网页中的特定信息(如标题、段落、链接等)。
  • 修改 HTML 内容(添加、删除或修改节点)。
  • 将 HTML 文档保存为字符串或文件。

Jsoup 的核心功能是解析 HTML 并提供类似 CSS 选择器的 API,方便用户快速定位和操作 DOM 元素。


2. 安装 Jsoup

在项目中使用 Jsoup,可以通过以下方式添加依赖:

Maven 方式

pom.xml 文件中添加:

<dependency>
    <groupId>org.jsoupgroupId>
    <artifactId>jsoupartifactId>
    <version>1.15.4version>
dependency>
手动引入 JAR 包

从 Jsoup 官网 下载最新版本的 JAR 文件,将其添加到项目依赖中。


3. 基本用法
3.1 解析 HTML 文档

Jsoup 可以解析本地文件、字符串或通过网络获取的 HTML 内容。

从文件加载
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class JsoupExample {
    public static void main(String[] args) throws Exception {
        // 从本地 HTML 文件加载文档
        Document doc = Jsoup.load("example.html");
        System.out.println(doc.title()); // 输出标题
    }
}
从字符串解析
String htmlContent = "Test

Hello World

"
; Document doc = Jsoup.parse(htmlContent); System.out.println(doc.title()); // 输出 "Test"
从 URL 加载
// 通过网络加载 HTML 内容
Document doc = Jsoup.connect("https://example.com").get();
System.out.println(doc.title());
3.2 设置超时时间

在从网络加载内容时,可以设置超时时间以避免程序长时间无响应:

Document doc = Jsoup.connect("https://example.com")
    .timeout(5000) // 5秒超时
    .get();

4. 查找和选择节点

Jsoup 提供了强大的节点选择功能,支持 CSS 选择器。

4.1 常用选择方法
  • select(String selector):根据 CSS 选择器查找所有匹配的元素。
  • getElementById(String id):通过 ID 查找单个元素。
  • getElementsByTag(String tag):通过标签名查找所有元素。
  • getElementsByClass(String className):通过类名查找所有元素。
4.2 示例
Document doc = Jsoup.connect("https://example.com").get();

// 1. 查找所有的  链接
Elements links = doc.select("a");
for (Element link : links) {
    System.out.println(link.attr("href")); // 输出链接地址
}

// 2. 查找所有段落(

标签) Elements paragraphs = doc.select("p"); for (Element p : paragraphs) { System.out.println(p.text()); // 输出段落文本 } // 3. 查找特定类名的元素 Elements divs = doc.getElementsByClass("container"); System.out.println(divs.size());


5. 提取和修改数据
5.1 提取文本
Element element = doc.selectFirst(".content"); // 获取第一个 .content 类的元素
String text = element.text(); // 提取纯文本
System.out.println(text);
5.2 提取属性值
// 查找所有  标签并提取 src 属性
Elements imgs = doc.select("img");
for (Element img : imgs) {
    String src = img.attr("src"); // 获取 src 属性值
    System.out.println(src);
}
5.3 修改节点
// 1. 添加新内容
Element body = doc.body();
body.append("

This is a new paragraph.

"
); // 2. 删除元素 Elements scripts = doc.select("script"); scripts.remove(); // 删除所有

你可能感兴趣的:(java,java)