Jsoup 是一个用于解析和操作 HTML 文档的 Java 库。它可以帮助你:
Jsoup 的核心功能是解析 HTML 并提供类似 CSS 选择器的 API,方便用户快速定位和操作 DOM 元素。
在项目中使用 Jsoup,可以通过以下方式添加依赖:
在 pom.xml
文件中添加:
<dependency>
<groupId>org.jsoupgroupId>
<artifactId>jsoupartifactId>
<version>1.15.4version>
dependency>
从 Jsoup 官网 下载最新版本的 JAR 文件,将其添加到项目依赖中。
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"
// 通过网络加载 HTML 内容
Document doc = Jsoup.connect("https://example.com").get();
System.out.println(doc.title());
在从网络加载内容时,可以设置超时时间以避免程序长时间无响应:
Document doc = Jsoup.connect("https://example.com")
.timeout(5000) // 5秒超时
.get();
Jsoup 提供了强大的节点选择功能,支持 CSS 选择器。
select(String selector)
:根据 CSS 选择器查找所有匹配的元素。getElementById(String id)
:通过 ID 查找单个元素。getElementsByTag(String tag)
:通过标签名查找所有元素。getElementsByClass(String className)
:通过类名查找所有元素。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());
Element element = doc.selectFirst(".content"); // 获取第一个 .content 类的元素
String text = element.text(); // 提取纯文本
System.out.println(text);
// 查找所有
标签并提取 src 属性
Elements imgs = doc.select("img");
for (Element img : imgs) {
String src = img.attr("src"); // 获取 src 属性值
System.out.println(src);
}
// 1. 添加新内容
Element body = doc.body();
body.append("This is a new paragraph.
");
// 2. 删除元素
Elements scripts = doc.select("script");
scripts.remove(); // 删除所有