不知不觉,在b站(哔哩哔哩)做了一段时间的萌新up主了。(虽然是萌新,但是还是有颗想当大V的心的)古人云:工欲善其事,必先利其器。“器”在这里我定义为数据分析,用数据驱动产品。
哔哩哔哩的创作中心数据趋势只展示七天以内的数据。于是萌生出写一个dashboard,把哔哩哔哩和YouTube的数据都放在mysql,用dashboard展示,还能从mysql拉历史数据,从不同纬度进行数据分析。
最下边有完整源码的github地址
第一个版本的demo长这样:
开始写dashboard
图表的生成用到了pyecharts的库,官方提供了个生成html的render()方法和生成多图的page()方法,但是只能固定排列样式。temp传入后,要多图也只能for循环,不能固定样式。
于是,到pyecharts源码,添加了个render_html_content()方法,作用是,生成一个包含图表html代码的对象。然后就可以和python3,format()方法结合生成index.html
注:web前端用了开源的keen/dashboards
format()技巧:
例如我们在html_temp.html写个{all},读取html_temp内容作为obj对象
然后obj.format(all=all),右边的all是html内容,执行后,就可以把{all}替换为html内容。
pyecharts源码修改:
(如何找到pip3安装的第三方库的地址?)
运行python3,
import pyecharts
pyecharts
就有地址了
修改render/engine.py
并在render类添加个render_html_content()函数
修改charts/base.py
image
并在base类添加个render_html_content()函数
在render/templates添加个temp.html
这个temp.html 去掉了等标签,只输出图表的html代码
这时只需要调用
图表对象.render_html_content(template_name="temp.html")
和
html_obj.format(all=all)
就可以把图表html替换掉模版html的{all}
获取哔哩哔哩数据:
光有图表没数据可不行
以下几个公开的API可以获取播放量、粉丝数、点赞等数据
我们可以先建一个bilibili表,然后把数据插入进去
表结构为:
获取数据的python脚本:
Python获取近五天日期的列表:
最后附上生成dashboard脚本:
完整源码的github地址:
参考文献: