📜  jsoup教程(1)

📅  最后修改于: 2023-12-03 15:17:05.113000             🧑  作者: Mango

Jsoup教程

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和属性等条件。

CSS选择器

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

有时候,您需要从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(); // 获取正文
过滤HTML
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数据。在本教程上面,你应该已经掌握了基本的技能。如果您想要更深入地了解该库,您可以查看官方文档或者参考更多的示例。