📅  最后修改于: 2023-12-03 15:17:05.084000             🧑  作者: Mango
Jsoup 是一个用于 Java 的 HTML 解析器,可以从 URL、文件或字符串中提取和操作数据。它提供了类似于 jQuery 的 CSS 选择器语法来找到所需的元素,方法类似于 DOM API。Jsoup 还具有清理和提高容错性的功能,可以通过 XHTML 验证标准化输出来清理 HTML。
可以将 Jsoup 添加为依赖项, 以在项目中使用。这可以通过以下步骤完成:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
dependencies {
implementation 'org.jsoup:jsoup:1.13.1'
}
您可以使用 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();
}
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 简单易用,并且有详细的官方文档可供参考。