大家好,今天分享一个通过 Python 自动创建相关图片的教程,而这个相关图片就是《历史上的今天》,那么为啥是历史呢,因为萝卜哥是一个历史迷,从小就喜欢啃历史书,随着年龄的增长,这份热情还是没有减退~
好了闲话不都说,我们直接上干货
首先就是数据哪里来,我试过使用网上的一些免费历史查询接口,但是效果都不理想,这些接口不是太不稳定,就是数据不友好。最后我还是选择了一个精简的网站,直接扒网站页面信息即可
http://jintian.160.com/
网站很简单,也没有任何反爬措施,我们直接抓取数据
这里提供了月和天的变量,就是为了后面我们做成 web 服务时可以方面的获取任何时间的历史信息
然后我们再编写一个函数,把获取到的数据转化成 DataFrame 格式
对于最终生成的图片,使用的是 PyEcharts 制作,核心代码复用了《可以叫我才哥》公众号号主才哥
的相关代码,下面我们简单解析下相关代码
首先我们明确图片基础是 Line 类型,没错就是我们平时用的最多的折线图!
先生成 Y 轴 数据
使用系列配置pyecharts.options
当中的LineItem
类,不过很奇怪的是,这个类竟然在 PyEcharts 官网中找不到,还是查看了官方源码才大概了解其作用
大概的意思就是批量的设置 Line 的属性,这里不得不吐槽下 PyEcharts 官方文档,真的该好好维护下啊~(如果我这里理解的不对,欢迎指出,咱们一起学习~)
也就是说上面的代码生成了一系列数据,这些数据 X 轴都是 10,Y 轴是从 0 开始,一直到循环的最后一个值递增,同时还通过LabelOpts
设置了 msg 信息,也就是我们最终看到的历史信息
XY 轴数据设置好之后,就是其他的样式调整了
这里考验的就是 PyEcharts 的熟练程度了,反正萝卜我是不达标的,这样样式如果是我自己,可能要对照官网调整大半天,哈哈哈
好了,图片制作就介绍到这里
因为有个需求就是每天获取图片,然后转发到微信群,那么最方便的方法就是部署成 Web,在公网上访问即可
对于这种临时的,个人网站,还是推荐使用 Flask,毕竟快就是优势(这里的快指的是编写快,上手快~)
导入 Flask 和 PyEcharts 相关库
然后设置路由函数
这样就好了,通过 Flask 自带的 Web 容器启动即可
好了,今天的分享就到这里
看到这里的朋友,如果你觉得满意请务必点个赞 + 在看 支持下。