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 相关文章推荐
python实现巡检系统(solaris)示例
Apr 02 Python
Python使用shelve模块实现简单数据存储的方法
May 20 Python
Python中内建函数的简单用法说明
May 05 Python
用Python3创建httpServer的简单方法
Jun 04 Python
python3实现磁盘空间监控
Jun 21 Python
对Python中for复合语句的使用示例讲解
Nov 01 Python
用Python实现读写锁的示例代码
Nov 05 Python
python绘制评估优化算法性能的测试函数
Jun 25 Python
python 返回一个列表中第二大的数方法
Jul 09 Python
基于python中__add__函数的用法
Nov 25 Python
在python里使用await关键字来等另外一个协程的实例
May 04 Python
Python新手学习标准库模块命名
May 29 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
简单的PHP缓存设计实现代码
2011/09/30 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
JS实现图片放大镜插件详解
2017/11/06 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
详解Python3.1版本带来的核心变化
2015/04/07 Python
python 生成器协程运算实例
2017/09/04 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
Python API自动化框架总结
2019/11/12 Python
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
卫校毕业生自我鉴定
2013/10/31 职场文书
《画》教学反思
2014/04/14 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
无房证明样本
2015/06/17 职场文书
2016党员入党决心书
2015/09/22 职场文书
作文之亲情600字
2019/09/23 职场文书
90行Python代码开发个人云盘应用
2021/04/20 Python
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
使用Redis做预定库存缓存功能
2022/04/02 Redis
Android Rxjava3 使用场景详解
2022/04/07 Java/Android