SpringBoot项目中使用Jsoup抓取公众号文章到管理后台

一、前言

  本文将探讨如何使用Spring Boot 结合 Jsoup 来构建高效的网络爬虫。通过本文的学习,大家将能够掌握利用Spring Boot和Jsoup进行网络爬虫开发的基本方法和技巧。

二、Jsoup简介

  Jsoup 是一款用 Java 编写的 HTML 解析器,它提供了一种简单而强大的方式来解析和操作 HTML 文档。Jsoup 适用于需要从网页中提取数据、修改 HTML 内容或进行网页爬虫等场景。

三、Jsoup主要功能

1.解析HTML

Jsoup 可以从 URL、文件或字符串中解析 HTML。它支持直接连接到网站获取 HTML 内容,也可以从本地文件或字符串中加载 HTML。

Jsoup 能够解析不规范的 HTML,如缺少闭合标签、隐式标签等,并生成一个结构合理的 DOM。

2.数据抓取

能够根据元素的标签名、ID、类名、属性等条件提取数据。

常用的包括:通过类似于 DOM 的方法,遍历 HTML,使用 CSS 选择器语法来查找 HTML 元素。

同时Jsoup 还支持使用正则表达式来查找和提取数据。

3.操作HTML

Jsoup 支持对 HTML 元素、属性和文本进行修改,例如添加、删除或替换元素,修改元素的文本内容或属性值等。

Jsoup 可以用于清理用户提交的 HTML 内容,以防止跨站脚本(XSS)攻击。

四、Spring Boot集成Jsoup实战

1.添加依赖

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.17.2</version>
</dependency>

2.获取公众号文章

获取Document对象

Document document = Jsoup.connect(url)
                .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36")
                .timeout(10000)
                .get();

userAgent 模拟浏览器请求,绕过基础反爬

timeout 超时时间

假如在服务器上面遇到SSL问题,可以使用sslSocketFactory,构建一个SSLSocketFactory对象,跳过SSL的验证

3.读取文章内容

我们以公众号为例子,先分析一下文章的整体结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找到内容所在的一些id


// 文章封面图链接
String coverUrl = document.select("meta[property=\"og:image\"]").get(0).attr("content");

// 简介
String description = document.select("meta[property=\"og:description\"]").get(0).attr("content");

// 文章标题
String title = document.select("meta[property=\"og:title\"]").get(0).attr("content");

// 公众号名称
String name = document.getElementById("js_name").text();

// 文章内容
Element elementBody = document.body();
Element article = elementBody.getElementById("js_article");

此时article就是全文的内容。

如果不需要里面的哪一块内容,可以从Element对象中移除

方法:void remove()

需要额外添加一些内容可以使用

方法:Element append(String html) 

这样子就获取到了这个内容了,直接导入后台,同时像微博、新浪新闻等都可以使用,感兴趣的小伙伴可以试试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗的狍子007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值