如何用Python,制作疫情可视化大屏?
在3月初,小F写了一篇可视化教程的推文,其中提到了几个疫情的可视化大屏,视觉效果十分酷炫。
这期就来实战一波,并且将项目部署上线。
技术栈js+css+html+echarts+flask+mysql,效果大致如下~
这里要说明一下,项目的来源是「B站」。
如果你也想自己部署上线这么一个疫情可视化大屏,那么可以访问下面的小程序,就可以看到具体的教程。
这里又不得不吹一下小破站,干货真的好多。
不过项目中还是有一些问题存在,比如讲解不清楚又或者代码有问题。
第一个便是爬虫代码的更新。
项目的部分数据是来源于「腾讯新闻的疫情实时追踪」,其中视频中的爬取代码已经失效,需要新增一个数据接口。
https://view.inews.qq.com/g2/getOnsInfo?name=disease_other
https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5
项目最新代码已经上传「GitHub」,阅读原文即可访问。
还有热搜的数据也是有所变化,标签发生了改变,数据来源于百度疫情热搜。
//*[@id="ptab-0"]/div/div[2]/section/div
//*[@id="ptab-0"]/div/div[2]/section/a/div/span[2]
第二个就是在本地远程连接服务器上的数据库。
一开始按照视频里的方法,一直连接不上,折腾了小F好久。
查阅资料后才知道需要修改mysql的user表,设置远程连接权限。
还有就是成功连接上,插入数据,数据库的表格没反应。
最后将表格的类型从InnoBDB改为MYISAM就可以了,具体什么原因,就不太清楚了...
读取数据库数据时出现了Decimal类型的数据,通过Decimal.to_eng_string()解决。
data[0].to_eng_string(), data[1], data[2].to_eng_string(), data[3].to_eng_string()
第三个就是生产模式部署,视频中使用的是gunicorn,而我使用的则是uwsgi。
只需将uwsgi.ini文件放在项目目录下,并在虚拟环境中运行即可。
这个在小F之前的几篇推文有提到过,可以翻翻看。
其中爬虫代码可以上传到服务器上,通过crontab定时运行,这样数据就能一直更新下去。
30 * * * * /root/app/test/env/bin/python3 /root/app/test/spider.py up_his >> /root/app/test/log_his 2>&1 &
3 */2 * * * /root/app/test/env/bin/python3 /root/app/test/spider.py up_hot >> /root/app/test/log_hot 2>&1 &
*/5 * * * * /root/app/test/env/bin/python3 /root/app/test/spider.py up_det >> /root/app/test/log_det 2>&1 &
记得加上虚拟环境的路径,这样程序才能运行成功。
还有一个需要加路径的地方就是selenium,视频里是C盘路径,我一个Linux服务器,肯定是不行的。
browser = webdriver.Chrome(options=chrome_options, executable_path='/usr/local/bin/chromedriver')
selenium、Chrome及驱动的具体安装,就需要问度娘啦!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 对于hashmap的一点理解
- IntelliJ IDEA 2020.2 破解
- MATLAB批量给数据集加雾
- Vue Cli 4 引入 Cesium 配置
- R语言在不同样本量下的Littles MCAR检验
- Stata中的治疗效果:RA:回归调整、 IPW:逆概率加权、 IPWRA、 AIPW
- R语言基于协方差的SEM结构方程模型中的拟合指数
- Python贝叶斯回归分析住房负担能力数据集
- 基于R统计软件的三次样条和平滑样条模型数据拟合及预测
- R语言析因设计分析:线性模型中的对比
- R语言逻辑回归、方差分析 、伪R平方分析
- R语言逐步多元回归模型分析长鼻鱼密度影响因素
- R语言对回归模型进行协方差分析
- R语言多项式样条回归、非线性回归数据分析
- R语言中进行Spearman等级相关分析