jsoup怎么用
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容主要讲解"jsoup怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"jsoup怎么用"吧!jsoup是一款Java的HTML解析器,可以从ht
千家信息网最后更新 2025年02月01日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 Mapheaders; 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安全错误
数据库的锁怎样保障安全
基于g 的软件开发
计算机系网络技术怎么样
个人网络安全与密码
导入数据库
安卓邮箱拦截软件开发
同城电商软件开发
关于网络安全的理解正确的是
网络安全系统应急响应预案
中国数据库有通过cc认证的吗
数据库技术每年新题
魔兽服务器pvp和普通是啥意思
互联网金融科技公司靠谱吗
重庆软件开发张强
软件开发职称分类
公共互联网网络安全保障
软件开发快速设计
新商道软件开发
wcf http服务器
信息技术考试数据库错误
福建软件开发应用
香港服务器配置了解
海康威视c 软件开发社招面试
南昌机架式服务器什么价格
网络安全板报资料
理想招聘软件开发杭州
川大网络安全特招
淮安怀杨信网络技术有限公司
高信软件提示连接账套数据库失败
法院网络安全教育新闻
网络安全课程讲师