B站up主的好助手。记录所有自己投稿稿件的各类历史数据(播放量、点赞、投币、评论、收藏、转发、评论数)并进行可视化。
特点:
-
实时记录所有自己投稿稿件的各类数据(播放量、点赞、投币、评论、收藏、转发、评论数),便于进行观众的行为分析。
-
可以分时段看到数据的变化情况,便于优化自己的投稿时间。
-
从
创作中心--稿件管理
获取数据,所以新投稿的视频也会自动开始记录。 -
数据可视化,通过参数灵活调整显示的数据类型和时间段。
-
如果程序意外退出,重新运行即可,之前的数据会被保留。
基于Python3,所需的第三方包有:Pandas
和Matplotlib
。
程序分为两个部分:
- 收集数据
由collector.py
实现,每间隔一段时间将数据记录并保存到time_series.pkl
中,需要一直保持后台运行。 - 查看数据
读取
time_series.pkl
中的数据并通过Matplotlib
进行数据可视化。 提供了三种方式,分别为viewer.py
,viewer.ipynb
,viewer_GUI.py
。
基于python3,所需的第三方包有:Pandas
和Matplotlib
。上述两个库需要(通过pip
等命令)额外安装。然后将程序通过git
命令等下载到本地。
修改最后一行time.sleep()
中的秒数,以修改获取数据的间隔时间。默认为1800秒,即每半小时更新记录一次数据。
运行collector.py
,注意使其保持一直运行。
程序会生成time_series.pkl
文件,是保存的数据文件。
如果程序意外退出,重新运行即可,之前的数据会被保留。
viewer.py
的提供了三个函数:
accumulate(kinds, av, start_time, end_time)
increase(kinds, av, start_time, end_time, interval)
av_title()
前两者分别用于画累计数据的折线图和指定时间间隔的增长量柱状图,最后一个函数用于打印视频av号与标题的对照。
具体参数如下:
参数 | 说明 |
---|---|
kinds |
在一张图表中绘制多子图同时显示指定的数据。接受list 类型,其中元素可以填'view' 'like' 'coin' 'favourite' 'share' 'danmu' 'reply' |
av |
指定要画图的视频。接受list 类型,其中的元素为视频av号(类型为int ) |
start_time end_time |
指定起止时间。接受string 类型,格式为'YYYY-mm-dd MM:HH' 如 '2020-05-05 15:05' |
interval |
针对increase() 函数有效,设置时间间隔。接受int 类型,单位为秒 ,默认值为84600 。 |
修改程序最后的函数及参数即可得到不同的图表。
该文件是JupyterNotebook文件,代码同viewer.py
,修改最后两个cell中函数的参数,即可绘图。
该程序为用tkinter写的GUI界面,直接运行viewer_GUI.py
,可以通过它更直观的设置参数进行绘图。
注1:读取和保存
time_series.pkl
用的都是相对路径。即:请保证collector.py
viewer.py
time_series.pkl
在同一个文件夹中。
注2:在
./示例数据
文件夹中附带了一份示例数据,可将其复制到上一层文件夹中用示例数据画图。 注意,如果要开始记录自己的数据时,请务必把示例数据从程序根目录下删除,否则自己的数据会添加在示例数据之后,而不是覆盖掉。
第一次在GitHub上发布repository。有任何问题欢迎讨论。 遇图片加载等网络问题可移步码云
欢迎关注我们的B站:三个半理工男 + 半个艺术生 = kaleidoscopeTech 科技万花筒