使用 Jsoup 解析 HTML 页面
什么是 Jsoup?
Jsoup 是一个用于处理 HTML 页面的 Java 库,它提供了简单的 API,使得从 HTML 中提取数据变得非常容易。无论是获取特定标签的内容还是遍历整个页面的元素,Jsoup 都能轻松胜任。
如何使用 Jsoup 解析 HTML 页面?
首先,确保你的 Java 项目中已经添加了 Jsoup 的依赖。你可以在 Maven 或 Gradle 中添加以下依赖:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.3</version>
</dependency>
然后,你可以按照以下步骤来使用 Jsoup 解析 HTML 页面:
步骤:
步骤 1:导入 Jsoup 类
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
步骤 2:获取页面内容并解析为 Document 对象**
String url = "https://example.com"; // 替换为你想要解析的页面 URL
Document document = Jsoup.connect(url).get();
步骤 3:使用选择器获取特定元素
Jsoup 使用类似于 CSS 选择器的语法来选择和定位页面元素。以下是一些常用的选择器示例:
- 选择特定标签的元素:
Elements links = document.select("a"); // 获取所有 <a> 标签
- 选择具有特定 class 属性的元素:
Elements articles = document.select(".article"); // 获取所有 class="article" 的元素
- 选择具有特定 id 属性的元素:
Element header = document.select("#header"); // 获取 id="header" 的元素
步骤 4:遍历元素并提取内容
Element.text(); // 获取链接文本
Element.attr("href"); // 获取链接地址
Element.val(); // 获取连接value值
Jsoup 常用方法的作用和用法
在前面的步骤中,我们已经简单地介绍了一些 Jsoup 的常用方法。下面是一些常用方法的详细说明:
-
Jsoup.connect(url).get()
: 这个方法用于连接指定的 URL,并将页面内容解析为一个 Document 对象。 -
document.select(selector)
: 这个方法使用选择器来选取符合条件的元素。可以选择标签名、class、id 等属性。 -
element.text()
: 获取元素的文本内容。 -
element.attr(attributeKey)
: 获取元素指定属性的值,常用于获取链接地址、图像路径等属性。 -
element.html()
: 获取元素内部的 HTML 代码。 -
element.val()
:获取元素内的value属性值。 -
element.getElementById(id)
:按ID查找元素,包括该元素或在该元素下。 -
element.getElementsByClass(className)
:查找具有此类的元素,包括该元素或在该元素下。不区分大小写。 -
element.getElementsByAttribute(key)
:查找具有命名属性集的元素。不区分大小写。 -
element.getElementsByAttributeStarting(keyPrefix)
:查找属性名称以提供的前缀开头的元素。使用数据-查找具有HTML5数据集的元素。 -
element.getElementsContainingOwnText(searchText);
:查找直接包含指定字符串的元素。搜索不区分大小写。文本必须直接出现在元素中,而不能出现在其任何子体中。 -
element.hasText()
:判断这个元素是否有任何文本内容(不仅仅是空白)。