2人参与 • 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 举报,一经查实将立刻删除。
发表评论