jsoup怎么用
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容主要讲解"jsoup怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"jsoup怎么用"吧!jsoup是一款Java的HTML解析器,可以从ht
千家信息网最后更新 2025年12月03日jsoup怎么用
本篇内容主要讲解"jsoup怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"jsoup怎么用"吧!
jsoup是一款Java的HTML解析器,可以从html中解析数想要的数据,是用java写爬虫必备的工具。
每日增量、总量数据随意切换
阅读量、粉丝量、评论数、点赞数、总排名、周排名…… 任意选取
随意选取时间区间
自从有了这个工具后,我博客一切数据尽收眼底,每天看着这数据一点点的变化,还是蛮有成就感、蛮开心的呢 !!
如何做?
秀完该告诉大家如何做的,首先你得有台能执行定时任务的主机,云主机或者你卧室的主机都可以,然后得有个数据库,至于整体功能其实就是一个简单的增删改查。哦 不对,只有增查没有删改,数据展示的话我用了蚂蚁金服开源的可视化库antv g2,我用的3.8 bug很多不推荐,推荐使用highchart。
我认为其中比较复杂的部分应该是html数据解析的部分,这部分后面我会直接把我代码告诉你。其次就是数据库的存储和查询,我用spring-boot搭了个web服务,用了spring-boot-starter-quartz写了每天晚上11:55的定时任务,用mybatis-spring-boot-starter来读写数据库。
html的解析代码,需要看懂csdn博客页的html布局,然后逐渐调试获取数据,当然csdn官方一改版,代码就执行不了了,所幸这种致命性改版频率不会特别高,这大半年我就遇到过2-3次,代码如下,可以直接拿来用,把url换成自己博客url就可以了。
public class CommonUtils { private static Logger log = LoggerFactory.getLogger(CommonUtils.class); private static Map headers; static { headers = new HashMap<>(); headers.put("referer", "https://www.google.com/"); headers.put("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0" + ".4183.83 Safari/537.36"); } public static BlogInfoDao getBlogInfo() { int retry = 3; while (--retry > 0) { try { BlogInfoDao blogInfoDao = new BlogInfoDao(); blogInfoDao.setDate(new Date()); Document doc = Jsoup.connect("https://blog.csdn.net/xindoo").headers(headers).get(); Element blogElement = doc.getElementsByClass("data-info d-flex item-tiling").get(0); // 文章数量 int articleCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(0).attr("title")); blogInfoDao.setArticleCnt(articleCnt); // 周排名 int wranking = Integer.parseInt(blogElement.getElementsByTag("dl").get(1).attr("title")); blogInfoDao.setWranking(wranking); // 总排名 int ranking = Integer.parseInt(blogElement.getElementsByTag("dl").get(2).attr("title")); blogInfoDao.setRanking(ranking); // 总阅读量 int viewCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(3).attr("title")); blogInfoDao.setViewCnt(viewCnt); blogElement = doc.getElementsByClass("data-info d-flex item-tiling").get(1); // 总积分 int scoreCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(0).attr("title")); blogInfoDao.setScore(scoreCnt); // 粉丝数量 int fansCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(1).attr("title")); blogInfoDao.setFansCnt(fansCnt); // 点赞量 int likeCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(2).attr("title")); blogInfoDao.setLikeCnt(likeCnt); // 评论量 int commentCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(3).attr("title")); blogInfoDao.setCommentCnt(commentCnt); // 收藏量 int collectCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(4).attr("title")); blogInfoDao.setCollectCnt(collectCnt); return blogInfoDao; } catch (Exception e) { log.error("get bloginfo error, {}", e); } } return null; }} blogInfoDao是我封装的用来和数据库交互的类,没啥内容这里就不再贴了。
到此,相信大家对"jsoup怎么用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
数据
代码
数据库
主机
内容
博客
任务
就是
工具
数量
粉丝
部分
学习
推荐
查询
评论
不对
复杂
实用
更深
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
SCI数据库技术路线
服务器健康管理芯片设计
湖北夸克网络技术有限公司
国企软件开发考核办法
服务器内存怎么提高
小白数据库测试手册
修改数据库一个字段值
江苏蟹谢你互联网科技有限公司
博弈网络技术追回
关于服务器的优美句子
接口测试查询对应数据库表
网络安全素质教育一级难吗
博客系统的ER图和数据库
电脑及网络安全工程师租赁合同
教科版 网络技术应用
长岛安卓软件开发公司
有代码怎么建立数据库
网络安全业务融合
手机应用软件开发是啥
女生适合做数据库吗
30岁学软件开发有前途吗
搭建一个服务器需要多大的内存
网络安全博弈论教材
数据库备份的批处理命令
知网检测的数据库
网络技术员年工作计划
海蒂软件开发有限公司
vba怎么网问云端数据库
萤石云服务器怎么设置密码
长沙网络安全城市