Jsoup -- 网络爬虫解析器
需要下载jsoup-1.8.1.jar包
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
网页获取和解析速度飞快,推荐使用。
主要功能如下:
1. 从一个URL,文件或字符串中解析HTML;
2. 使用DOM或CSS选择器来查找、取出数据;
3. 可操作HTML元素、属性、文本;
范例代码如下:
- package cn.ysh.studio.crawler.jsoup;
- import java.io.IOException;
- import org.jsoup.Jsoup;
- /**
- * 基于Jsoup抓取网页内容
- * @author www.yshjava.cn
- */
- public class JsoupTest {
- public static void main(String[] args) throws IOException {
- //目标页面
- String url = "http://www.yshjava.cn";
- //使用Jsoup连接目标页面,并执行请求,获取服务器响应内容
- String html = Jsoup.connect(url).execute().body();
- //打印页面内容
- System.out.println(html);
- }
- }
自我总结:
概述
Jsoup 是一个用于处理 HTML 的 Java 库,它可以从 URL、文件或字符串中提取和操作数据,特别适合用于网络爬虫中解析 HTML 页面。Jsoup 提供了类似于 jQuery 的语法,方便开发者选择和操作 HTML 元素。
核心功能
- 解析 HTML:可以将 HTML 字符串、文件或从 URL 获取的 HTML 内容解析为
Document
对象。 - 选择元素:支持使用 CSS 选择器或 XPath 表达式来选择 HTML 元素。
- 操作元素:可以修改元素的属性、文本内容等。
示例代码及解释
1. 添加依赖
如果你使用 Maven 项目,在 pom.xml
中添加 Jsoup 依赖:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.3</version>
</dependency>
2. 从 URL 解析 HTML 页面
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
public class JsoupExample {
public static void main(String[] args) {
try {
// 从 URL 获取 HTML 内容并解析为 Document 对象
Document doc = Jsoup.connect("https://news.baidu.com/").get();
// 使用 CSS 选择器选择所有新闻标题元素
Elements newsTitles = doc.select("div#pane-news a.title");
// 遍历新闻标题元素并打印标题文本
for (Element title : newsTitles) {
System.out.println(title.text());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. 代码解释
- 连接到 URL 并获取 HTML 内容:
Document doc = Jsoup.connect("https://news.baidu.com/").get();
使用 Jsoup.connect(url).get()
方法连接到指定的 URL,并将返回的 HTML 内容解析为 Document
对象。
- 使用 CSS 选择器选择元素:
Elements newsTitles = doc.select("div#pane-news a.title");
使用 select()
方法结合 CSS 选择器 div#pane-news a.title
选择所有符合条件的新闻标题元素。Elements
是一个元素集合,包含了所有匹配的元素。
- 遍历元素并获取文本内容:
for (Element title : newsTitles) {
System.out.println(title.text());
}
使用 text()
方法获取元素的文本内容,并打印出来。
4. 其他常用操作
获取元素属性
Element link = doc.select("a").first();
String href = link.attr("href");
System.out.println("链接地址: " + href);
修改元素内容
Element paragraph = doc.select("p").first();
paragraph.text("新的段落内容");
总结
Jsoup 是一个强大且易用的 HTML 解析库,通过简单的 API 可以方便地解析 HTML 页面、选择元素和操作元素。在网络爬虫开发中,使用 Jsoup 可以快速提取所需的数据,提高开发效率。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本