每天定时查询CSDN博客访问量,并通过echarts进行展示
效果展示
- Github链接:https://github.com/qushencn/springboot
- Csdn下载链接:https://download.csdn.net/download/weixin_38959210/11082611
只写了Controller到dao层吗,没有写中间的Service层
后台代码:@Controller:
@Controller
public class UserController {@Autowiredprivate FwlMapper fwlmapper;@RequestMapping("/hello")public String HelloSpringBoot() {System.out.println("从Controller跳转前台页面");return "user/index";}@RequestMapping("/csdn")@ResponseBody@Scheduled(cron="0 0 12 * * ?") //每天12点执行一次public String selectcsdn() throws IOException {csdn csdn=new csdn();int fwl=csdn.selectcsdn();fwl wl=new fwl();wl.setFwl(fwl);wl.setTime(getTime());System.out.println("fwl:"+fwl);System.out.println("显示时间是:"+getTime());int a=fwlmapper.insertfwl(wl);System.out.println("a:"+a);return "插入成功";}@RequestMapping("/selecttime")@ResponseBodypublic List<fwl> selecttime(){System.out.println("进入了查询csdn访问量");System.out.println("查询到的数据是:"+fwlmapper.selectall().get(2).getTime());return fwlmapper.selectall();}public static String getTime() {Date date=new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String updateTime=sdf.format(date);return updateTime;}}
抓取CSDN博客评论代码:
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;public class csdn {public int selectcsdn() throws IOException {Document doc = Jsoup.connect("https://blog.csdn.net/weixin_38959210").header("Accept-Encoding", "gzip, deflate").userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0").maxBodySize(0).timeout(600000).get();Elements csdndoc=doc.select(".grade-box");Elements csdn_dd=csdndoc.select("dl dd");String fangwenliang=csdn_dd.get(1).attr("title");int fwliang = Integer.parseInt(fangwenliang);System.out.println("csdn访问量:"+fangwenliang);return fwliang;}
}
dao层代码 @Mapper:
@Mapper
public interface FwlMapper {public int insertfwl(fwl wl);public List<fwl> selectall();}
mapper.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.dao.FwlMapper"><resultMap type="fwl" id="fwlMap"><id column="id" property="id" jdbcType="INTEGER" /><result column="fwl" property="fwl" jdbcType="VARCHAR" /><result column="time" property="time" jdbcType="VARCHAR" /></resultMap><insert id="insertfwl" parameterType="fwl" >insert into csdnfwl(fwl, time) values(#{fwl}, #{time})</insert><select id="selectall" resultType="com.example.demo.entity.fwl">select id,fwl,LEFT(time,10) time from (select * from csdnfwl order by time desc limit 8) u order by time asc</select></mapper>
前端代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<style>
body {padding:0; /*去除内边距*/border:0; /*去除边框*/margin:0; /*去除外边距*/
}
</style><script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://cdn.bootcss.com/echarts/4.2.1-rc1/echarts-en.common.js"></script>
<body><div id="main" style="width: 1920px;height:800px;" ></div></body><script>$(function () {// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 指定图表的配置项和数据var option = {title: {text: 'csdn博客访问量',subtext: '单位:人次'},tooltip:{show:true },toolbox: {show : true,feature : {mark : {show: false},dataView : {show: true, readOnly: false},magicType : {show: true, type: ['line', 'bar']},restore : {show: true},saveAsImage : {show: true}}},legend: {data:[]},xAxis: {data: []},yAxis: {scale:true // 最小值},series: [{type: 'line',data:[]}]};// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);var taking=[]; //收入数组(实际用来盛放X轴坐标值)var yearmonth=[]; //年月数组(实际用来盛放Y坐标值)$.ajax({async : true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)url : "/selecttime", //请求发送到TestServlet处dataType : "json", //返回数据形式为jsonsuccess : function(result) {//请求成功时执行该函数内容,result即为服务器返回的json对象if (result != null && result.length > 0) {for(var i=0;i<result.length;i++){ taking.push(result[i].fwl); //挨个取出收入并填入类别数组}for(var i=0;i<result.length;i++){ yearmonth.push(result[i].time); //挨个取出年月并填入销量数组}myChart.hideLoading(); //隐藏加载动画myChart.setOption({ //加载数据图表xAxis: {data: yearmonth,},series: [{// 根据名字对应到相应的系列data: taking}]});}},error : function(errorMsg) {//请求失败时执行该函数alert("图表请求数据失败!");myChart.hideLoading();}})});</script>
</html>
实体类命名:
private int id;private int fwl;private String time;
数据库命名:
每天定时查询CSDN博客访问量,并通过echarts进行展示相关推荐
- 【爬虫+数据可视化】Python爬取CSDN博客访问量数据并绘制成柱状图
以下内容为本人原创,欢迎大家观看学习,禁止用于商业及非法用途,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/article/ ...
- 【流量】一觉醒来发现CSDN博客访问量增加十倍!原来是这个原因
想必点击来的同学都是想提高自己博文访问量的,而具体的方法相信你已经掌握了,此时我的博客访问量+1 咳咳,这样写就真的太扯淡了,毕竟咱也是搞技术的,虽然现在是流量之上,但是CSDN毕竟还是一个技术社区嘛 ...
- 不知不觉,二哥 CSDN 博客访问量破 1000 万了,这个成绩,全网也没几个吧?
不知不觉,二哥 CSDN 博客访问量破 1000 万了,这个成绩,全网也没几个吧? 虽然CSDN 被很多人鄙视过,二哥甚至也发过牢骚,但滴水之恩,当涌泉相报!二哥是从这里出发的,那就应该更加深爱着这个 ...
- CSDN博客访问量突破10万
CSDN博客访问量突破10万,纪念一下.
- CSDN博客访问量问题
亲测,发现CSDN博客访问量算法有问题. 随意打开自己任意一片博客,刷新,都算一次访问了,但短时间内持续刷新没有算访问量. 过几分钟,重新刷新,又算一次访问量,访问量又 +1. 话说CSDN,这个访问 ...
- Node.js批量刷CSDN博客访问量
在我的系列文章Node.js文章中的Node.js爬虫技术中介绍了爬取我的博客文章列表. 在那里我们用到了request和cheerio.这里我只需要使用request就可以批量刷CSDN博客的访问量 ...
- 用java爬虫来提高CSDN博客访问量,浏览量
首先明确一点,采用爬虫来提高访问量,这样是不对滴,同学们请不要使用. 咋们用的java的jsoup来进行爬虫,也可以用http就是代码有点多,咋们省着点来. 一.首先,项目中引入如下jar包,让爬虫变 ...
- 2019年度CSDN博客之星TOP10榜单揭晓,你上榜了吗?
培根说,『读书造成充实的人,会议造成未能觉悟的人,写作造成正确的人』. 在短信短视频快速迭代的快时代,更深度的思考.更正确的实践,更成体系的写作与分享,尤显可贵.这里,每一篇博文都是开发者实战的经验解 ...
- 在CSDN博客中添加Google Adsense等广告来赚钱
您的CSDN博客访问量如何?是否想运用你的博客流量来为你带来广告收入?如何才能将广告代码尤其是Google的广告代码添加进我的CSDN?Blog中?通过这篇Blog我将告诉你我刚刚成功放入Google ...
最新文章
- gmail怎么延时发送邮件呢?
- IL2CPP的优化 : Devirtualization 去虚拟化
- java基础分享_一、java基础教程
- 水平集嵌入函数的曲率
- python如何操作oracle数据库_python操作oracle数据库
- 登录文件传输服务器,生信小技巧之:在本地与服务器间快速传输文件,无密码登录远端服务器...
- Java 读写txt文件 中文乱码问题
- 业务逻辑?到底是什么
- 《善用佳软:高效能人士的软件应用之道》一第2章 办公软件:核心应用,实用技巧...
- flac文件转换成mp3格式
- springboot 整合 ftps
- 2022年美容师(初级)操作证考试题库及模拟考试
- html桌面共享文件夹,win7共享文件夹在哪? win7和win10怎么共享文件夹
- 《富爸爸穷爸爸 》 读书笔记
- python语言例子_第一个Python实例
- 配置使用consol口和网线登录交换机
- 我终于深入参与了一个分布式系统了,好多想法不一样了
- 开源办公的五个法律问题 ——以“新型冠状病毒”防控期间企业在线远程运营为视角...
- 基于python的管理系统_基于ssm的管理系统_基于python管理系统
- UML设计java程序_利用UML序列图设计Java应用程序详解