📅  最后修改于: 2023-12-03 15:17:05.113000             🧑  作者: Mango
Jsoup是Java的HTML解析器,可以很方便地从Web页面中提取DOM、元素、属性和文本等。在本教程中,我们将介绍如何使用Jsoup解析HTML文档,以及如何进行DOM操作。
使用Maven构建工具,在项目的pom.xml中添加以下依赖项:
<dependencies>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.3</version>
</dependency>
</dependencies>
使用Jsoup解析HTML文档的基本步骤如下所示:
Document doc = Jsoup.connect("http://example.com/").get();
String title = doc.title();
System.out.println("标题: " + title);
这将从指定的URL加载HTML文档,并提取页面标题。
使用选择器,可以轻松地提取HTML元素和属性。例如,以下代码将提取所有div元素:
Document doc = Jsoup.parse("<html><body><div class='content'>...</div></body></html>");
Elements divs = doc.select("div");
这将返回页面中所有的div元素对象列表。选择器支持标签名,类名,ID和属性等条件。
Jsoup支持CSS选择器,让您可以像使用jQuery一样查询和修改DOM。以下是一些常见的示例:
Elements links = doc.select("a[href]"); //所有带href属性的链接
Element masthead = doc.select("div.masthead").first(); //带有class="masthead"的div
Element link = doc.select("a").first(); // 找到第一个a链接
link.attr("href", "http://newurl.com"); // 修改链接地址
link.text("New link text"); // 修改链接文字
有时候,您需要从HTML文档中提取纯文本。以下是一些有用的技巧:
String html = "<html><head><title>标题</title></head><body><p>正文</p></body></html>";
Document doc = Jsoup.parse(html);
String title = doc.title(); // 获取标题
String body = doc.body().text(); // 获取正文
String unsafe = "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>";
String safe = Jsoup.clean(unsafe, Whitelist.basic()); // 移除所有不安全的标记
这将移除所有不安全的HTML标记,防止跨站点脚本攻击。
这是一个简单的Jsoup教程,让您可以快速入门,开始解析HTML和DOM操作。Jsoup是一个强大的工具,非常适合处理Web数据。在本教程上面,你应该已经掌握了基本的技能。如果您想要更深入地了解该库,您可以查看官方文档或者参考更多的示例。