Python分析最近大火的网剧《隐秘的角落》


Posted in Python onJuly 02, 2020

前言

估计最近很火的连续剧《隐秘的角落》大家趁着端午假期都看过了吧?小编也跟着潮流,一口气把12集的连续剧全部看完了。看过的人肯定对朋友圈里有人发的“一起去爬山”、“小白船”、“还有机会吗”的意思心照不宣。没看过的,如果已为人父人母的,强烈要求看一下。

剧很精彩,但追剧界有句俗话说得好:“弹幕往往比剧更精彩”,为了让精彩延续下去,咱们来看看该剧弹幕的部分。电视剧是在爱奇艺独播,因此从爱奇艺上爬虫最为合适。

爬取弹幕

爱奇艺的弹幕数据是以 .z 形式的压缩文件存在的,先获取 tvid 列表,再根据 tvid 获取弹幕的压缩文件,最后对其进行解压及存储,大概就是这样一个过程。

def get_data(tv_name,tv_id):
 url = https://cmts.iqiyi.com/bullet/{}/{}/{}_300_{}.z
 datas = pd.DataFrame(columns=[uid,contentsId,contents,likeCount])
 for i in range(1,20):
  myUrl = url.format(tv_id[-4:-2],tv_id[-2:],tv_id,i)
  print(myUrl)
  res = requests.get(myUrl)
  if res.status_code == 200:
   btArr = bytearray(res.content)
   xml=zlib.decompress(btArr).decode(utf-8)
   bs = BeautifulSoup(xml,"xml")
   data = pd.DataFrame(columns=[uid,contentsId,contents,likeCount])
   data[uid] = [i.text for i in bs.findAll(uid)]
   data[contentsId] = [i.text for i in bs.findAll(contentId)]
   data[contents] = [i.text for i in bs.findAll(content)]
   data[likeCount] = [i.text for i in bs.findAll(likeCount)]
  else:
   break
  datas = pd.concat([datas,data],ignore_index = True)
 datas[tv_name]= str(tv_name)
 return datas

共爬取得到201865 条《隐秘的角落》弹幕数据。

Python分析最近大火的网剧《隐秘的角落》

弹幕发射器

按照用户id分组并对弹幕id计数,可以得到每位用户的累计发送弹幕数。

#累计发送弹幕数的用户
danmu_counts = df.groupby(uid)[contentsId].count().sort_values(ascending = False).reset_index()
danmu_counts.columns = [用户id,累计发送弹幕数]
danmu_counts.head()

Python分析最近大火的网剧《隐秘的角落》

累计发送弹幕数用户top5

第一名竟然发送了2561条弹幕,这只是一部12集的网剧啊。

难道他/她是水军?每条都发的差不多?

df_top1 = df[df[uid] == 1810351987].sort_values(by="likeCount",ascending = False).reset_index()
df_top1.head(10)

Python分析最近大火的网剧《隐秘的角落》

然而并不是,每一条弹幕都是这位观众的有感而发,可能他/她只是在发弹幕的同时顺便看看剧吧。

这位“弹幕发射器”朋友,在每一集的弹幕量又是如何呢?

Python分析最近大火的网剧《隐秘的角落》

分集&平均弹幕量

是不是通过上图可以侧面说明个别剧集的戏剧冲突更大,更能引发观众吐槽呢?

“弹幕发射器”同志,11、12集请加大输出!

这些弹幕大家都认同

抛开“弹幕发射器”同志,我们继续探究一下分集的弹幕。

看看每一集当中,哪些弹幕大家都很认同(赞)?

df_like = df[df.groupby([tv_name])[likeCount].rank(method="first", ascending=False)==1].reset_index()[[tv_name,contents,likeCount]]
df_like.columns = [剧集,弹幕,赞]
df_like

Python分析最近大火的网剧《隐秘的角落》

每一集中点赞最多的弹幕

每一集的最佳弹幕都是当集剧情的浓缩,这些就是观众们票选出来的梗(吐槽)啊!

应该不算剧透吧,不算吧,不算吧

实在不行我请你去爬山也可

Python分析最近大火的网剧《隐秘的角落》

总结

除了剧本、音乐等,“老戏骨”和“小演员”们的演技也获得了网友的一致好评。

这部剧虽然短短12集,但故事线不仅仅在一两个人身上。每个人都有自己背后的故事,又因为种种巧合串联在一起,引发观众的持续性讨论。

我们统计一下演员们在弹幕中的出现次数,看看剧中的哪些角色大家提及最多

到此这篇关于Python分析最近大火的网剧《隐秘的角落》的文章就介绍到这了,更多相关python分析隐秘的角落内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
wxPython 入门教程
Oct 07 Python
利用python代码写的12306订票代码
Dec 20 Python
详解Python迭代和迭代器
Mar 28 Python
无法使用pip命令安装python第三方库的原因及解决方法
Jun 12 Python
详解Django中间件的5种自定义方法
Jul 26 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 Python
python实现大量图片重命名
Mar 23 Python
Python读取YAML文件过程详解
Dec 30 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
python matlab库简单用法讲解
Dec 31 Python
keras训练浅层卷积网络并保存和加载模型实例
Jul 02 #Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 #Python
利用scikitlearn画ROC曲线实例
Jul 02 #Python
Python使用文件操作实现一个XX信息管理系统的示例
Jul 02 #Python
keras用auc做metrics以及早停实例
Jul 02 #Python
keras 简单 lstm实例(基于one-hot编码)
Jul 02 #Python
Python装饰器结合递归原理解析
Jul 02 #Python
You might like
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
php求一个网段开始与结束IP地址的方法
2015/07/09 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
javascript对象的property和prototype是这样一种关系
2007/03/24 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
详解JS函数重载
2014/12/04 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python 不关闭控制台的实现方法
2011/10/23 Python
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
Python写的英文字符大小写转换代码示例
2015/03/06 Python
Python设计模式之抽象工厂模式
2016/08/25 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
元旦活动感言
2014/03/08 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
党员转正意见怎么写
2015/06/03 职场文书
人力资源部工作计划
2019/05/14 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python