千家信息网

jsoup怎么用

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,本篇内容主要讲解"jsoup怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"jsoup怎么用"吧!jsoup是一款Java的HTML解析器,可以从ht
千家信息网最后更新 2024年09月21日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安全错误 数据库的锁怎样保障安全 忻州商场触摸互动软件开发公司 服务器如何找网页文件 浙江省智谷互联网科技 消防支队网络安全自查表 软件开发怎么分配成员 支持多软件开发的模型 蜜蜂源数据库怎么修改格式 丽江哪有定制软件开发 中孚信息软件开发待遇怎么样 云服务器 支持python dell服务器自动开机 升级服务器后无法进入系统 如何在一个数据库下载文献 学软件开发哪个最简单 大专动漫制作和网络技术应用 gpu编译系统软件开发工程师 金蝶hr系统数据库考勤明细表 财务相关的外文数据库 山东济宁网络安全审计 我国网络安全法基础 网络安全维护跟岗日志 2022年热门软件开发 黑客网络安全法案例分析 2020网络安全周重庆沙画 吉林易通网络技术有限公司 各国网络安全人才培养 网络技术对社会的好处 2022网络安全宣传视频 信息论与编码和网络安全的关系 安全风险数据库的目的
0