爱奇艺《中国新说唱2020》弹幕分析,制作不完全数据大屏

时间:2020-8-21 作者:admin

爱奇艺《中国新说唱2020》弹幕分析,制作不完全数据大屏

《中国新说唱2020》不完全数据大屏

哇咔咔,爱奇艺《中国新说唱2020》如期而至,作为漫不经心的伪嘻哈迷,以及与世无争的梅格妮,那绝对是必追无疑(单压X4 cool~)。在看视频的同时我还制作了一个爱奇艺《中国新说唱2020》不完全数据大屏,感兴趣的朋友可以点这里 https://www.fishhere.fun/rap先睹为快。

获取爱奇艺弹幕

想要制作大屏,第一步就是要获取数据。我们先来看下弹幕。
其实这一步骤还是很简单的,网上有很多的先驱者,网友们也写的很清楚,随便搜索一下就可以知道怎么获取了,不过大多人都是用 python,我这里用的是 node。

  1. 打开网页控制台,搜索“bullet”,点 z 结尾的就是我们要找的链接。

爱奇艺《中国新说唱2020》弹幕分析,制作不完全数据大屏

链接中的最后一个数字每隔300秒加1,直到视频结束。所以遍历的次数为视频时长除以300且向上取整。视频分上下两集,所以还要再执行两次。

  1. 使用 node 请求数据,这里使用了 eggjs 框架。
const res = await this.ctx.curl(url, {
    // gzip: true,
});

是否支持 gzip 响应格式,默认为 false。 开启 gzip 之后,HttpClient 将自动设置 Accept-Encoding: gzip 请求头, 并且会自动解压带 Content-Encoding: gzip 响应头的数据。(摘自 eggjs 官方文档)

这里获取到的是一个 buffer 格式的文件,我以为将 gzip 设置为 true,就可以拿到解压后的文件,但其实不然。

  1. 使用 node 的 zlib 解压文件,最后就可以拿到正确的文件。

爱奇艺《中国新说唱2020》弹幕分析,制作不完全数据大屏

制作词云

  1. 用 xml2js 操作 xml 文件
const xml2js = require('xml2js');
const parser = new xml2js.Parser();
parser.parseString(xmlData, function (err, result) {
    console.log(result)
})
  1. 用 nodejieba 抽取关键词
const nodejieba = require("nodejieba");

let result = nodejieba.extract(sentence, 100);

console.log(result)
{ name: '吴亦凡', value: 14263.133233106502 },
            { name: 'gai', value: 9743.53957487934 },
            { name: 'GAI', value: 8522.66232694265 },
            { name: '哈哈哈', value: 7698.80620601334 },
            { name: '张靓颖', value: 7492.465254428001 },
            { name: '药水', value: 6655.8901403435 },
            { name: '凡凡', value: 6632.650433502201 },
            { name: '真的', value: 6022.47052337153 },
            { name: '可爱', value: 5797.61069876588 },
            { name: '感觉', value: 4642.93663210213 },
            { name: '凡哥', value: 4554.811271148415 },
            { name: '哈哈哈哈', value: 4305.01735446552 },
            { name: 'giao', value: 4273.0703677784095 },
            { name: '孟子', value: 4055.0087039027 }

这个地方孟子坤变成了孟子,哈哈哈哈。

  1. 用 echarts 制作词云
import echarts from 'echarts';
import 'echarts-wordcloud';

chart.setOption({
    series: [{
        name: '弹幕',
        type: 'wordCloud',
        shape: 'circle',
        textStyle: {
            normal: {
                color: '#927e55'
            }
        },
        data: this.data
    }]
})

爱奇艺《中国新说唱2020》弹幕分析,制作不完全数据大屏

统计厂牌主理人的弹幕热度

let Kris = ['吴亦凡', '凡哥', '凡凡子', '凡凡']
let JaneZhang = ['张靓颖', '张姐', '姐姐', '靓颖']
let WilberPan = ['潘玮柏', '潘帅']
let GAI = ['GAI', 'gai']

遍历 nodejieba 抽取的关键字,让匹配的词相加。
使用 echarts 的折线图 Line,颜色自由发挥,我觉得我这里的配色还是比较漂亮的。

爱奇艺《中国新说唱2020》弹幕分析,制作不完全数据大屏

凡凡子热度还是很高的,潘帅第一期不在,热度较低。

统计用户发弹幕数量

使用 echarts 的饼图 Pie。

爱奇艺《中国新说唱2020》弹幕分析,制作不完全数据大屏

大多人只发了一条弹幕,当然也有我这种连账号都没有的长视频网站重度用户。

统计用户发弹幕top10

使用 echarts 的柱状体 Bar。

爱奇艺《中国新说唱2020》弹幕分析,制作不完全数据大屏

第一名发了55条。

弹幕点赞top10

爱奇艺《中国新说唱2020》弹幕分析,制作不完全数据大屏

看来 GAI 这句话深入人心。

结束语

感兴趣的可以点这里查看 https://www.fishhere.fun/rap,上面使用的弹幕数据最后时间更新于2020-08-19中午,之后的每一期我都会追,也会更新弹幕统计。

写给网络小编的一句话,原文链接在这里 https://yiluyanxia.github.io/…,无论如何还是很感谢你爬了我的文章。

最后感谢你的阅读,如果有好的建议或者意见可以给我回复,谢谢你。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。