📜  jsoup-提取HTML(1)

📅  最后修改于: 2023-12-03 15:17:05.084000             🧑  作者: Mango

Jsoup-提取HTML

介绍

Jsoup 是一个用于 Java 的 HTML 解析器,可以从 URL、文件或字符串中提取和操作数据。它提供了类似于 jQuery 的 CSS 选择器语法来找到所需的元素,方法类似于 DOM API。Jsoup 还具有清理和提高容错性的功能,可以通过 XHTML 验证标准化输出来清理 HTML。

安装

可以将 Jsoup 添加为依赖项, 以在项目中使用。这可以通过以下步骤完成:

  1. 在 Maven 项目中,将以下代码添加到 pom.xml 文件中:
<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.13.1</version>
</dependency>
  1. 在 Gradle 项目中,将以下代码添加到 build.gradle 文件中:
dependencies {
    implementation 'org.jsoup:jsoup:1.13.1'
}
使用方法
获取 HTML

您可以使用 Jsoup 从许多来源获取 HTML,例如 URL、文件或字符串。以下代码演示如何从 URL 中获取 HTML:

String url = "https://www.example.com/";
Document doc = Jsoup.connect(url).get();

您可以通过以下方式获取字符串中的 HTML:

String html = "<html><head><title>Sample Title</title></head>"
        + "<body><p>Sample Content</p></body></html>";
Document doc = Jsoup.parse(html);
选择器语法

您可以在 Jsoup 中使用 CSS 选择器语法找到所需的元素。以下是几个示例:

// 选择第一个 p 元素
Element p1 = doc.select("p").first();

// 选择带有 class="content" 的 div
Element div = doc.select("div.content").first();

// 选择所有链接
Elements links = doc.select("a[href]");

更多选择器语法可以查看 Jsoup 官方文档

操作数据

使用 Jsoup,可以轻松地遍历、修改和操作 HTML 数据。以下示例演示如何获取和设置元素的属性:

// 获取元素的 class 属性
String className = div.attr("class");

// 设置元素的 class 属性
div.attr("class", "new-class");

以下代码演示如何遍历元素:

// 遍历所有链接
for (Element link : links) {
    String href = link.attr("href");
    String text = link.text();
}
清理 HTML

Jsoup 可以帮助您从 HTML 中删除不必要的标记和属性,并修复不标准的语法。以下示例演示如何清理 HTML 并转换为 XHTML 标准:

String dirtyHtml = "<p>This is <b>very dirty</p>";
String cleanHtml = Jsoup.clean(dirtyHtml, Whitelist.basic());

此代码将输出以下 HTML:

<p>This is <b>very dirty</b>.</p>

更多有关清洗 HTML 的信息可以查看 Jsoup 官方文档

总结

Jsoup 是一款用于 Java 的强大 HTML 解析工具,能够从各种来源提取和操作数据。使用 Jsoup 可以轻松地从 HTML 中选择、修改和操作元素,并清理和标准化 HTML。Jsoup 的 API 简单易用,并且有详细的官方文档可供参考。