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 strip lstrip rstrip使用方法
Sep 06 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
Nov 06 Python
Python函数可变参数定义及其参数传递方式实例详解
May 25 Python
Python中的if、else、elif语句用法简明讲解
Mar 11 Python
python爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
python自动发送邮件脚本
Jun 20 Python
Python 实现训练集、测试集随机划分
Jan 08 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 Python
Python Mock模块原理及使用方法详解
Jul 07 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
Python gevent协程切换实现详解
Sep 14 Python
Python实现Appium端口检测与释放的实现
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
PHP中替换换行符的几种方法小结
2012/10/15 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
JS选项卡动态替换banner图片路径的方法
2015/05/11 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
javascript-解决mongoose数据查询的异步操作
2016/12/22 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
vue+iview使用树形控件的具体使用
2020/11/02 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Win10下Python环境搭建与配置教程
2016/11/18 Python
python实现感知器算法详解
2017/12/19 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
物业管理员岗位职责范文
2013/11/25 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
学校师德承诺书
2014/05/23 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
三严三实学习心得体会
2014/10/13 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
法律意见书范本
2015/06/04 职场文书
公司转让协议书
2016/03/19 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL