SpringBoot、Java 使用 Jsoup 解析 HTML 页面

使用 Jsoup 解析 HTML 页面

什么是 Jsoup?

Jsoup 是一个用于处理 HTML 页面的 Java 库,它提供了简单的 API,使得从 HTML 中提取数据变得非常容易。无论是获取特定标签的内容还是遍历整个页面的元素,Jsoup 都能轻松胜任。

如何使用 Jsoup 解析 HTML 页面?

首先,确保你的 Java 项目中已经添加了 Jsoup 的依赖。你可以在 Maven 或 Gradle 中添加以下依赖:

xml 复制代码
  <dependency>
      <groupId>org.jsoup</groupId>
      <artifactId>jsoup</artifactId>
      <version>1.15.3</version>
  </dependency>

然后,你可以按照以下步骤来使用 Jsoup 解析 HTML 页面:

步骤:

步骤 1:导入 Jsoup 类

java 复制代码
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

步骤 2:获取页面内容并解析为 Document 对象**

java 复制代码
String url = "https://example.com"; // 替换为你想要解析的页面 URL
Document document = Jsoup.connect(url).get();

步骤 3:使用选择器获取特定元素

Jsoup 使用类似于 CSS 选择器的语法来选择和定位页面元素。以下是一些常用的选择器示例:

  • 选择特定标签的元素:
java 复制代码
Elements links = document.select("a"); // 获取所有 <a> 标签
  • 选择具有特定 class 属性的元素:
java 复制代码
Elements articles = document.select(".article"); // 获取所有 class="article" 的元素
  • 选择具有特定 id 属性的元素:
java 复制代码
Element header = document.select("#header"); // 获取 id="header" 的元素

步骤 4:遍历元素并提取内容

java 复制代码
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():判断这个元素是否有任何文本内容(不仅仅是空白)。

相关推荐
q_19132846956 分钟前
基于SpringBoot+Vue.js的高校竞赛活动信息平台
vue.js·spring boot·后端·mysql·程序员·计算机毕业设计
weixin_4407305013 分钟前
Java基础学习day01
java·开发语言·学习
天远云服36 分钟前
Go 语言实战:构建高并发天远“全国自然人人脸比对 V3”微服务网关
java·大数据·微服务·golang
PPPPickup40 分钟前
easychat项目复盘---管理端系统设置
java·开发语言·前端
挖矿大亨1 小时前
C++中的this指针
java·开发语言·c++
sheji34161 小时前
【开题答辩全过程】以 共享单车管理系统为例,包含答辩的问题和答案
java
北北~Simple1 小时前
接口调不通的情况
java
0思必得01 小时前
[Web自动化] JS基础语法与数据类型
前端·javascript·自动化·html·web自动化
Dreamcatcher_AC1 小时前
前端面试高频问题解析
前端·css·html
Kiyra1 小时前
八股篇(1):LocalThread、CAS和AQS
java·开发语言·spring boot·后端·中间件·性能优化·rocketmq