首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《中餐厅》弹幕数据分析,我不要你觉得,我只要我觉得!

《中餐厅》弹幕数据分析,我不要你觉得,我只要我觉得!

作者头像
小小詹同学
发布于 2019-09-17 07:14:02
发布于 2019-09-17 07:14:02
75400
代码可运行
举报
文章被收录于专栏:小詹同学小詹同学
运行总次数:0
代码可运行

这段时间奇怪了,周围朋友都爱上了同一个口头禅“我不要你觉得,我只要我觉得”;我就纳闷了汉语文字那么多,你们偏偏都爱上了同一句,我怀疑他们在玩梗,果不其然,在B站的鬼畜区了解到了真相。

绿大暗仅凭一己之力,将综艺节目《中餐厅3》推上了热门,成为了本季度当之无愧的综艺之王,“我不要你觉得,我只要我觉得”,“别说话,听我的”等是绿大暗的经典名言,这些名言被称为“明学”,甚至隐隐与“六学”齐名,两开花。

对一部视频作品,如果说评论是观众观看后的沉思,那么弹幕就是吃瓜群众情感的实时流露,为了一窥“明学”的真谛,我打算爬一爬《中餐厅3》的弹幕数据,做一个情感分析。

废话不多说,“起锅烧油”

一、分析网页爬数据

1.确认加载方式

《中餐厅3》在芒果TV独播,打开Chrome浏览器,访问第1集的链接https://www.mgtv.com/b/330026/6086563.html,通过禁用页面javaScript发现页面视频和弹幕都无法加载,并且右键-查看页面源码,搜索不到弹幕的文字,说明数据是异步加载的

2.抓包分析

打开刚刚关闭的javaScript,重新加载页面,F12打开开发者工具,仔细查找XHRJS最终在js中找到了弹幕数据,链接是这样的 https://galaxy.bz.mgtv.com/rdbarrage?version=2.0.0&vid=6086563&abroad=0&pid=&os=&uuid=&deviceid=&cid=330026&ticket=&time=60102&mac=&platform=0&callback=jsonp_1568127366004_84552

弹幕数据是json格式,但是伪装成了jQuery藏在JS里面。

3.链接分析

从抓包的地址看,弹幕的真实请求地址是https://galaxy.bz.mgtv.com/rdbarrage?,其后是一堆相关的参数,相关的参数见下图

上图中许多参数字段是没有值的,所以我们试着简化请求地址链接,最终发现https://galaxy.bz.mgtv.com/rdbarrage?vid=6086563&cid=330026&time=60102仍然可以请求成功,也就是说只保留vid,cid.time3个参数就可以了

接下来分析vid,cid.time这3个参数

首先我们把前3期的url列出来

第1期:https://www.mgtv.com/b/330026/6086563.html

第2期:https://www.mgtv.com/b/330026/6128068.html

第3期:https://www.mgtv.com/b/330026/6168375.html

发现上述url中330026没有变化,只有后面的一串文字发生了变化,通过和下图中参数对比,发现url中第一个不变的数字串就是我们要寻找的vid,而后面的数字串就是cid,不难看出,vid是“中餐厅3”在芒果TV平台中的编号,而cid是中餐厅3不同期数的编号。

那么参数time是什么? 首先通过time英文的本身来看,她是一个和时间有关系的变量,那么可以有以下猜测

  1. time是本波弹幕开始加载的时间;
  2. time是本波弹幕播放的总时长

然后观察4条相邻的弹幕js数据,当前弹幕的next的值和下一条弹幕js文件请求的time值非常接近,于是尝试把 https://galaxy.bz.mgtv.com/rdbarrage?vid=6086563&cid=330026&time=120083中的time值修改为120000,然后再次请求数据,发现仍然可以成功请求到对应的数据

上图中在next参数的旁边还有个参数interval,她的英文意思是“间隔,间距”,而弹幕的time值依次是60000、120000、180000….,差值为60000,所以推测next=1000*interval,所以很有可能next的单位是ms,而interval的单位是s。

为了验证猜想,我们把视频进度条拉到最后,本期的视频长度为104.01分钟,而最后一条弹幕的next为6240000,6240000ms转化为分钟刚好是104min,验证成立:time是每条弹幕开始播放的时间。

至此所有的参数都已经搞清楚了

二、爬取数据

采用request请求数据,导入我们需要调用的包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
import json 
import pandas as pd
import time

首先定义一个主函数用来获取每条弹幕js文件的内容,并将获得的数据转化为json格式。传入的参数time_zimu是每条弹幕开始播放的时间

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def main(time_zimu):
    url='https://galaxy.bz.mgtv.com/rdbarrage?vid=6337608&cid=330026&time='+str(time_zimu)
    html=requests.get(url,headers=headers)
    html.encoding="utf-8"
    html_data=html.text[html.text.find('['):-2]
    html_data_json=json.loads(html_data)

这需要注意一点,因为我们要获取的json数据是在jQuery中,为了避免出错,我们这里直接获取json部分的数据html_data=html.text[html.text.find('['):-2],效果如下图

将数据转为json格式后,其中typeuid,content,time是我们想要的数据

构造获取弹幕信息函数,传入json的数据orgin_data,通过循环重复取出单条弹幕信息,并提取对应的字段

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def get_infos(orgin_data):
    for infos in orgin_data:
        yield[
        infos['type'],
        infos['uid'],
        infos['content'],
        infos['time']
        ]

构造保存数据函数,将获得的数据构建成DaraFrame,将数据保存到csv文件中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def save_data(single_data):
    data=[]
    data.extend(single_data)
    columns=['type','uid','content','time']
    data_frame=pd.DataFrame(data=data,columns=columns)
    data_frame.to_csv('data2019.csv',mode='a')

最后封装函数,循环获取所有弹幕文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if __name__ == "__main__":
    time_c=60000 #加载弹幕时间间隔
    for i in range(0,110): #此处110取决于最后弹幕的出现时间
        print('开始 时间为'+str(i)+'的字幕')
        main(time_c*i)
        time.sleep(3)

三、展示成果

运行爬虫,开始工作爬取弹幕

展示下我们爬取到的弹幕数据文件的前几行数据,达成获得弹幕数据成就

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data=pd.read_csv('data2019.csv')
print(data.head())

四、one more thing

这篇文章并没有太大难度,但是对于新手来说,网上的的教程都集中在代码部分,而前期的分析工作则一笔带过,其实这部分才是最重要的部分,这也是我写本文的初衷。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小詹学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
分析《向往的生活3》弹幕了解真正的“慢生活”
《向往的生活》是湖南卫视一档十分温馨的生活类真人秀综艺节目,目前第三季正在更新中,常驻嘉宾加入了张子枫,深受广大观众的喜欢。而该节目的豆瓣评分也达到了7.9。这档综艺以明星艺人到村寨里体验生活为主线,融入了美食,劳动,幽默的元素,让人边看边有身临其境的感觉,仿佛自身也真正进入了“向往的生活”。
数据森麟
2019/09/27
4700
分析《向往的生活3》弹幕了解真正的“慢生活”
用Python分析《令人心动的offer2》的13万条弹幕,网友们都在吐槽什么?
综艺,是我们劳累了一天的放松方式,也是我们饭后的谈资。看着自己喜欢的综艺,时光足够美。而《令人心动的offer》,就是一个不错的综艺选择。
龙哥
2020/12/07
3420
用Python分析《令人心动的offer2》的13万条弹幕,网友们都在吐槽什么?
教你用Python抓取分析《向往的生活》弹幕
《向往的生活》是湖南卫视一档十分温馨的生活类真人秀综艺节目,目前第三季正在更新中,常驻嘉宾加入了张子枫,深受广大观众的喜欢。而该节目的豆瓣评分也达到了7.9。这档综艺以明星艺人到村寨里体验生活为主线,融入了美食,劳动,幽默的元素,让人边看边有身临其境的感觉,仿佛自身也真正进入了“向往的生活”。
查理不是猹
2021/12/25
6140
9万条弹幕告诉你,《乘风破浪的姐姐》里谁才是真正的C位?
【导语】:今天我们来聊聊最近火到不行的综艺——《乘风破浪的姐姐》,Python分析弹幕部分请看第四部分。
CDA数据分析师
2020/06/29
1.1K0
9万条弹幕告诉你,《乘风破浪的姐姐》里谁才是真正的C位?
京东文胸爬虫及数据分析爬虫代码数据分析
许久不来写文章了,最近夏令营搞的确实没时间。这次把上次直播讲的东西写成文字,带大家开波车。
罗罗攀
2018/08/28
9110
京东文胸爬虫及数据分析爬虫代码数据分析
用Python爬取芒果TV、腾讯视频、B站、爱奇艺、知乎、微博这几大平台的弹幕、评论,看这一篇就够了!
今天讲解如何用python爬取芒果TV、腾讯视频、B站、爱奇艺、知乎、微博这几个常见常用的影视、舆论平台的弹幕和评论,这类爬虫得到的结果一般用于娱乐、舆情分析,如:新出一部火爆的电影,爬取弹幕评论分析他为什么这么火;微博又出大瓜,爬取底下评论看看网友怎么说,等等这娱乐性分析。
Python与Excel之交
2021/09/03
3.4K0
用Python爬取芒果TV、腾讯视频、B站、爱奇艺、知乎、微博这几大平台的弹幕、评论,看这一篇就够了!
Python爬虫,最新的B站弹幕和评论爬虫,你们要的冰冰来啦!
最近想爬下B站的弹幕和评论,发现网上找到的教程基本都失效了,毕竟爬虫和反爬是属于魔高一尺、道高一丈的双方,程序员小哥哥们在网络的两端斗智斗勇,也是精彩纷呈。
周萝卜
2022/12/27
7610
Python爬虫,最新的B站弹幕和评论爬虫,你们要的冰冰来啦!
Python爬取豆瓣电影Top250并进行数据分析
利用Python爬取豆瓣电影TOP250并进行数据分析,爬取’排名’,‘电影名称’,‘导演’,‘上映年份’,‘制作国家’,‘类型’,‘评分’,‘评价分数’,'短评’等字段。
润森
2022/08/18
4.6K0
Python爬取豆瓣电影Top250并进行数据分析
Python数据分析之简书粉丝敌我差距爬虫分析及代码敌我差距
最近粉丝涨的飞快,已突破3500大关,虽然比起大咖来说,是微乎其微,但看过我简书风云榜的都知道,3500粉丝也能排上前200名(虽然只爬取了20多万的数据)。 但随着粉丝的增长,也担心粉丝的质量问题,我发现许多粉丝都是没有发表任何文字的,我把这些用户定义为非活跃用户(这样太过偏激),今天就已作者本人的粉丝和向右奔跑前辈的粉丝做比较,看下敌我差距~ 爬虫分析及代码 简书的原因,这里只能爬取粉丝的前100页,一页就是9个粉丝,总共只能爬取900个粉丝,爬取的字段也是很简单: 粉丝id 关注量 粉丝量 文章数(
罗罗攀
2018/07/03
5440
让弹幕飞一会儿——腾讯视频弹幕(39W+)爬取实战
短短四句,揭示了两种本质——碗是大和圆的,面是长亦宽的。一秒就看清事物本质的人和一辈子才看透事物本质的人自然过着不同的人生。
DT数据侠
2019/04/25
2.7K0
让弹幕飞一会儿——腾讯视频弹幕(39W+)爬取实战
Python爬虫实战:爬取B站Top100视频,分析弹幕、播放量和分类并数据可视化
最近挺好奇的,B站每天Top100,具体什么视频最多,播放量和视频的弹幕数有没有比例关系。
Mintimate
2022/02/15
6K2
Python爬虫实战:爬取B站Top100视频,分析弹幕、播放量和分类并数据可视化
Python数据可视化:啥是佩奇
网址:http://comment.bilibili.com/72036817.xml
数据森麟
2019/09/29
3920
Python数据可视化:啥是佩奇
【Python爬虫】15行代码教你爬B站视频弹幕,词云图展示数据(附源码)
知识点 爬虫基本流程 正则 requests >>> pip install requests jieba >>> pip install jieba imageio >>> pip install imageio wordcloud >>> pip install wordcloud 开发环境 add path 勾选 其他可以默认安装 Python越新的版本 代表的一些模块不太兼容 Python 3.6 / 3.8 >>> python解释器(环境) Pycharm >>> python编辑器 代码实现过
松鼠爱吃饼干
2021/10/14
1.3K0
Python爬取淘数据平台商品数据,发现假发的市场原来那么火
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
松鼠爱吃饼干
2020/12/16
7630
Python爬取淘数据平台商品数据,发现假发的市场原来那么火
用Python爬取b站弹幕,看大家还会接受《爱情公寓5》吗?
为什么选择B站呢? 著名UP主“残狼之卑”,曾经在b站上传了几十个对比视频,做成《爱情公寓的抄袭史》,每期视频播放量都几十万,所以按理来说B站的用户反对爱情公寓的人应该很多。 如果B站的用户都可以接受,那么《爱5》可能真的会取得不错的播放量。 B站的弹幕数据是有接口的,比如说: https://comment.bilibili.com/********.xml 它以一个固定的url地址+视频的cid+.xml组成。只要找到你想要的视频cid,替换这个url就可以爬取所有弹幕了。 以刚才的视频为例
数据森麟
2019/10/23
6530
用Python爬取b站弹幕,看大家还会接受《爱情公寓5》吗?
Python数据分析之糗事百科
最近一直忙着写材料,没给大家写作业的案例,第二期同学很厉害,都是抢着要作业做,哈哈,今天我就给大家写点爬虫的扩展和数据分析,让厉害的同学学起来。
罗罗攀
2019/02/22
3970
Python数据分析之糗事百科
综艺节目《哈哈哈哈哈》最近有点火,教你爬取他的弹幕并绘制词云图,看看为什么这么火
不知道大家看视频有没有看弹幕的习惯,弹幕在一定的程度上反映了观众对视频的看法。通过分析弹幕,我们可以快速直观的知道观众对视频的看法。
Python与Excel之交
2021/08/05
6450
手把手带你B站少量弹幕爬取并生成词云
其中requests和bs4以及re是爬虫的主力军,而numpy、Image、jieba、wordcloud就是生成词云要用到的东西。pandas是便于格式化来输出文件是。
Regan Yue
2021/12/01
1.6K0
用Python围观垃圾分类是什么回事
目录 0 引言 1 环境 2 需求分析 3 代码实现 4 后记 0 引言 纸巾再湿也是干垃圾?瓜子皮再干也是湿垃圾??最近大家都被垃圾分类折磨的不行,傻傻的你是否拎得清????自2019.07.01开
龙哥
2019/07/10
1K1
用Python围观垃圾分类是什么回事
爬取许嵩新歌《雨幕》弹幕,告诉你什么才是真正的创作!
首先,利用哔哩哔哩的弹幕接口,把数据保存到本地。接着,对数据进行分词。最后,做了评论的可视化。
小小詹同学
2019/10/21
9021
爬取许嵩新歌《雨幕》弹幕,告诉你什么才是真正的创作!
推荐阅读
分析《向往的生活3》弹幕了解真正的“慢生活”
4700
用Python分析《令人心动的offer2》的13万条弹幕,网友们都在吐槽什么?
3420
教你用Python抓取分析《向往的生活》弹幕
6140
9万条弹幕告诉你,《乘风破浪的姐姐》里谁才是真正的C位?
1.1K0
京东文胸爬虫及数据分析爬虫代码数据分析
9110
用Python爬取芒果TV、腾讯视频、B站、爱奇艺、知乎、微博这几大平台的弹幕、评论,看这一篇就够了!
3.4K0
Python爬虫,最新的B站弹幕和评论爬虫,你们要的冰冰来啦!
7610
Python爬取豆瓣电影Top250并进行数据分析
4.6K0
Python数据分析之简书粉丝敌我差距爬虫分析及代码敌我差距
5440
让弹幕飞一会儿——腾讯视频弹幕(39W+)爬取实战
2.7K0
Python爬虫实战:爬取B站Top100视频,分析弹幕、播放量和分类并数据可视化
6K2
Python数据可视化:啥是佩奇
3920
【Python爬虫】15行代码教你爬B站视频弹幕,词云图展示数据(附源码)
1.3K0
Python爬取淘数据平台商品数据,发现假发的市场原来那么火
7630
用Python爬取b站弹幕,看大家还会接受《爱情公寓5》吗?
6530
Python数据分析之糗事百科
3970
综艺节目《哈哈哈哈哈》最近有点火,教你爬取他的弹幕并绘制词云图,看看为什么这么火
6450
手把手带你B站少量弹幕爬取并生成词云
1.6K0
用Python围观垃圾分类是什么回事
1K1
爬取许嵩新歌《雨幕》弹幕,告诉你什么才是真正的创作!
9021
相关推荐
分析《向往的生活3》弹幕了解真正的“慢生活”
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验