93人参与 • 2025-03-10 • Java
在现代 java 开发中,处理 html 数据是一项常见需求,无论是抓取网页数据、解析 html 文档,还是操作 dom 树,jsoup 都是一个强大的工具。它是一个基于 java 的 html 解析库,支持从 url、文件或字符串中解析 html,提供类似于 jquery 的 api,便于选择和操作 dom 元素。
本文将介绍 jsoup 的基本功能,并通过多个详细的代码示例展示如何使用它解析和操作 html。
在使用 jsoup之前,需要添加其依赖。以下是 jsoup 的 maven 依赖:
<dependency>
<groupid>org.jsoup</groupid>
<artifactid>jsoup</artifactid>
<version>1.15.4</version>
</dependency>
spring boot 集成 jsoup,以下示例将演示如何使用 jsoup 解析 html 文件和操作 dom。
import org.jsoup.jsoup;
import org.jsoup.nodes.document;
public class jsoupfromurl {
public static void main(string[] args) {
try {
// 从 url 抓取网页内容
document document = jsoup.connect("https://lsk-ww.cn").get();
// 输出网页标题
system.out.println("title: " + document.title());
// 输出网页的第一段文字
system.out.println("first paragraph: " + document.select("p").first().text());
} catch (exception e) {
e.printstacktrace();
}
}
}
import org.jsoup.jsoup;
import org.jsoup.nodes.document;
public class jsoupfromstring {
public static void main(string[] args) {
string html = "<html><head><title>jsoup example</title></head>" +
"<body><p>hello, jsoup!</p></body></html>";
// 解析 html 字符串
document document = jsoup.parse(html);
// 输出标题和段落内容
system.out.println("title: " + document.title());
system.out.println("body text: " + document.body().text());
}
}
import org.jsoup.jsoup;
import org.jsoup.nodes.document;
import org.jsoup.select.elements;
public class jsoupcssselector {
public static void main(string[] args) {
string html = "<html><body>" +
"<div class='content'><h1>header</h1><p>paragraph 1</p></div>" +
"<div class='footer'><p>footer paragraph</p></div>" +
"</body></html>";
// 解析 html
document document = jsoup.parse(html);
// 使用 css 选择器提取内容
elements content = document.select(".content h1");
system.out.println("header: " + content.text());
elements footer = document.select(".footer p");
system.out.println("footer: " + footer.text());
}
}
import org.jsoup.jsoup;
import org.jsoup.nodes.document;
public class jsoupmodifyhtml {
public static void main(string[] args) {
string html = "<html><body><p>original paragraph</p></body></html>";
// 解析 html
document document = jsoup.parse(html);
// 修改段落内容
document.select("p").first().text("updated paragraph");
// 输出修改后的 html
system.out.println(document.html());
}
}
import org.jsoup.jsoup;
import org.jsoup.nodes.document;
import org.jsoup.nodes.element;
import org.jsoup.select.elements;
public class jsoupextractlinks {
public static void main(string[] args) {
string html = "<html><body>" +
"<a href='https://example.com'>example</a>" +
"<img src='image.jpg' alt='example image'>" +
"</body></html>";
// 解析 html
document document = jsoup.parse(html);
// 提取链接
elements links = document.select("a[href]");
for (element link : links) {
system.out.println("link: " + link.attr("href") + " text: " + link.text());
}
// 提取图片
elements images = document.select("img[src]");
for (element image : images) {
system.out.println("image: " + image.attr("src") + " alt: " + image.attr("alt"));
}
}
}
import org.jsoup.connection;
import org.jsoup.jsoup;
import org.jsoup.nodes.document;
public class jsoupformexample {
public static void main(string[] args) {
try {
// 提交表单
connection.response response = jsoup.connect("https://example.com/login")
.data("username", "user123")
.data("password", "pass123")
.method(connection.method.post)
.execute();
// 获取响应的 html
document document = response.parse();
system.out.println("response: " + document.body().text());
} catch (exception e) {
e.printstacktrace();
}
}
}
jsoup 是处理 html 的强大工具,具备快速抓取、解析和操作 html 的能力,适合多种应用场景。
常见的优点:
常见的缺点:
以上就是java利用jsoup解析和操作html的技术指南的详细内容,更多关于java jsoup解析和操作html的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论