Python 爬取 201865 条《隐秘的角落》弹幕,发现看剧不如爬山?
作者 | 朱小五
责编 | 屠敏
封图 | CSDN 付费下载自东方 IC
最近又火了一部国产剧:《隐秘的角落》。
如果你没看过,那可能会对朋友圈里大家说的“一起去爬山”、“小白船”、“还有机会吗”感到莫名其妙。
暑期推荐旅游(来源微博)
小五在这个端午假期也赶紧刷完了本剧,必须要写篇文章了。
由于《隐秘的角落》是在爱奇艺独播,所以数据从爱奇艺下手最直接。
如果没爬过爱奇艺,可以考虑使用豆瓣、微博、知乎(电视剧数据分析 · 万能三件套)的数据。
爬虫
剧很精彩,但追剧界有句俗话说得好:“弹幕往往比剧更精彩”,为了让精彩延续下去,我终究没能忍住对弹幕下手。[1]
爱奇艺的弹幕数据是以 .z 形式的压缩文件存在的,先获取 tvid 列表,再根据 tvid 获取弹幕的压缩文件,最后对其进行解压及存储,大概就是这样一个过程。
这里参考了“数据兔小白[2]的代码,我又修改后实现分集爬取所有弹幕。
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:breakdatas = pd.concat([datas,data],ignore_index = True)datas['tv_name']= str(tv_name)return datas
注:避免引起不必要的麻烦,本爬虫仅指出关键步骤,不再公开提供。
共爬取得到201865 条《隐秘的角落》弹幕数据。
弹幕发射器
按照用户id分组并对弹幕id计数,可以得到每位用户的累计发送弹幕数。
#累计发送弹幕数的用户
danmu_counts = df.groupby('uid')['contentsId'].count().sort_values(ascending = False).reset_index()
danmu_counts.columns = ['用户id','累计发送弹幕数']
danmu_counts.head()
第一名竟然发送了2561条弹幕,这只是一部12集的网剧啊。
df_top1 = df[df['uid'] == 1810351987].sort_values(by="likeCount",ascending = False).reset_index()
df_top1.head(10)
然而并不是,每一条弹幕都是这位观众的有感而发,可能他/她只是在发弹幕的同时顺便看看剧吧。这位“弹幕发射器”朋友,在每一集的弹幕量又是如何呢?分集&平均弹幕量
是不是通过上图可以侧面说明个别剧集的戏剧冲突更大,更能引发观众吐槽呢?
“弹幕发射器”同志,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
每一集的最佳弹幕都是当集剧情的浓缩,这些就是观众们票选出来的梗(吐槽)啊!
应该不算剧透吧,不算吧,不算吧
实在不行我请你去爬山也可
朝阳东升
除了剧本、音乐等,“老戏骨”和“小演员”们的演技也获得了网友的一致好评。
这部剧虽然短短12集,但故事线不仅仅在一两个人身上。每个人都有自己背后的故事,又因为种种巧合串联在一起,引发观众的持续性讨论。
我们统计一下演员们在弹幕中的出现次数,看看剧中的哪些角色大家提及最多。
a = {'张东升':'东升|秦昊|张老师', '朱朝阳':'朝阳', '严良':'严良', '普普':'普普', '朱永平':'朱永平', '周春红':'春红|大娘子', '王瑶':'王瑶', '徐静':'徐静|黄米依', '陈冠声':'王景春|老陈|陈冠声', '叶军':'叶军|皮卡皮卡', '马主任':'主任|老马', '朱晶晶':'晶晶','叶驰敏':'叶驰敏'}
a = {'张东升':'东升|秦昊|张老师', '朱朝阳':'朝阳', '严良':'严良', '普普':'普普', '朱永平':'朱永平', '周春红':'春红|大娘子', '王瑶':'王瑶', '徐静':'徐静|黄米依', '陈冠声':'王景春|老陈|陈冠声', '叶军':'叶军|皮卡皮卡', '马主任':'主任|老马', '朱晶晶':'晶晶','叶驰敏':'叶驰敏'}
for key, value in a.items():df[key] = df['contents'].str.contains(value)
staff_count = pd.Series({key: df.loc[df[key], 'contentsId'].count() for key in a.keys()}).sort_values()
先计算出现次数,再利用pyecharts制作极坐标图。
比较让我疑惑的三个小孩当中的朱朝阳提及量这么低,按理说应该与其其他两位大体相当啊。
又去源数据看了一遍,提及朱朝阳(朝阳)的弹幕确实很少,因为大部分在弹幕中观众一般就叫他“学霸”、“儿子”之类的了。
词云
总所周知,一篇数分文章不能少了词云。
每篇的词云都尽量跟上篇文章不同,这次我采用的是stylecloud,它算是wordcloud词云包的升级版,看起来美观多了。
import stylecloud
from IPython.display import Image stylecloud.gen_stylecloud(text=' '.join(text1), collocations=False,font_path=r'C:\Windows\Fonts\msyh.ttc',icon_name='fas fa-play-circle',size=400,output_name='隐秘的角落-词云.png')
Image(filename='隐秘的角落-词云.png')
除了主角的名字以外,在这部以“孩子”为主题的剧中,对孩子的思想、行为的探讨占据重要部分,另外,剧中从年长的戏骨到年幼的孩子,每一个人都贡献了高光的演技,对他们演技的称赞也成为高频词汇。
而最出圈的“爬山”梗,更是被频频提及。
从《无证之罪》到《隐秘的角落》,都在证明悬疑犯罪题材在当下并非没有市场,要收获高人气高口碑,如何传播与营销终归只是手段,越来越多的团队沉下心来打磨精品剧集,观众才会愿意为剧买单,让“爬山”这样的梗一步步“出圈”。
本文相关数据和可视化源码下载:
https://alltodata.cowtransfer.com/s/5b483c08987243
参考文章
[1]小z,数据不吹牛: 《Python 爬取 394452 条《都挺好》弹幕数据,发现弹幕比剧还精彩?》
[2]数据兔小白: 爬取爱奇艺弹幕后,我找到了共鸣
注:本文仅用于学习交流,禁止用于商业用途。
【END】
更多精彩推荐
☞200 个工具分析机器学习十年:前途未卜、工程师是核心!
☞Python 3.9 正式版要来了,会有哪些新特性?
☞零基础编程小白如何拿 Offer?八年经验面试官万字肺腑之言
☞无代码开发到底是不是伪需求?
☞没了Macbook的英特尔还好吗?
☞Spring 从入门到入土——AOP 就这么简单!| 原力计划
☞硬核!国外开发者用 25 美元做了个区块链警佩相机!
你点的每个“在看”,我都认真当成了喜欢
Python 爬取 201865 条《隐秘的角落》弹幕,发现看剧不如爬山?相关推荐
- Python 爬取 201865 条《隐秘的角落》弹幕数据,发现看剧不如爬山?
Python 爬取 201865 条<隐秘的角落>弹幕数据,发现看剧不如爬山? 本文不涉及剧透!请放心食用 最近又火了一步国产剧:<隐秘的角落> 如果你没看过,那可能会对朋友圈 ...
- python弹幕拼脸_利用python爬取分析《隐秘的角落》20万+条弹幕,发现了这些..
图片源自网路 要说近期最火的国产剧,非<隐秘的角落>不可.该剧改编自紫金陈的推理小说<坏小孩>,讲述了沿海小城的三个孩子在景区游玩时,无意拍摄记录了一次谋杀,他们的冒险也由此展 ...
- 小伙用Python爬取3000条B站视频,发现刘华强买瓜是这么火起来的!
大家好,我是小五???? 最近B站这两个月,快被买瓜的刘华强屠版了,上一个这么火的人物,应该还是闪电五连鞭的马保国. 与之前的网络"审丑"视频不同,这次火的片段来自一部影视作品. ...
- Python爬取44130条用户观影数据,分析挖掘用户与电影之间的隐藏信息!
1.前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取 Python免费学习 ...
- Python爬取上万条大众点评数据,解读一线快餐品牌背后的秘密
中国的快餐市场竞争一直都很激烈,关于各种品牌江湖上也流传着各种神奇的故事,那么你知道 一线城市最多的快餐品牌是哪家? 沙县小吃真的是中国餐饮巨头吗? 每一家肯德基边上都有一家麦当劳是不是真的? 星巴克 ...
- 实战▍Python爬取3w条游戏评分数据,看看哪款最热门?
图| 战争前线游戏原画 本文作者| 量化小白H 本文为投稿,36大数据已获发布授权 36大数据推荐 实战项目 本文爬取了豆瓣游戏网站上所有可见的游戏评分数据进行分析,全文包括以下几个部分: 数据获 ...
- python爬取9000条京东内衣销售数据,最最最最基础的语言和语法;并利用这些数据,基于Aprior算法分析“是否罩杯大的人倾向于买贵一些的bra”
47[TOC](爬取9000条京东内衣销售数据,最最最最基础的语言和语法,并利用这些数据,基于Aprior算法分析"是否罩杯大的人倾向于买贵一些的bra") 本人刚接触python ...
- 用 Python 爬取 4332 条数据,揭秘甜咸肉粽的江湖!
作者 | 朱小五 责编 | 屠敏 来源 | 凹凸数据 端午节快要到了,甜咸粽子之争也快要拉开帷幕. 本文准备用Python爬取淘宝上的粽子数据并进行分析,看看有什么发现. 注:本文仅用于学习交流,禁止 ...
- Python爬取10000条“爆款剧”——《三十而已》热评,并做可视化
前言 继<隐秘的角落>后,又一部"爆款剧"--<三十而已>获得了口碑收视双丰收,王漫妮.顾佳.钟晓芹三个女主角的故事线频频登上微博热搜.该剧于2020年7月 ...
最新文章
- java将一个类到多个类,java-设计模式,将转换应用于多个类中的多个...
- matplotlb.finance导包报错——ModuleNotFoundError No module named mpl finance
- Word中标题、图表自动编号的方法
- C++:12---运算符重载
- 《你的灯亮着吗》 读书笔记三
- python实现解释器_Python设计模式之解释器模式
- phpexcel常见问题的解决办法
- 为什么要使用GraphQL?
- [转]为什么要使用框架
- JavaScript的类型转换(字符转数字,数字转字符)
- Bailian4040 买书问题【Ad Hoc】
- Android心电图动画效果,手把手教你打造一个心电图效果View Android自定义View
- 新版男神女神完整投票系统源码V5.5.21版本
- jupyter notebook 常用魔法函数 Magic Function%time %timeit %who %pip %cd
- IDE和IDLE是什么
- AMD将推出7纳米GPU Vega,专为深度学习和机器学习打造
- 成纤维细胞生长因子家族介绍:(PEG-FGF/rb-bFGF/aFGF/rhaFGF/baFGF/rhKGF-2)
- 咪咕盒子MGV2000电视盒子刷机教程
- ubuntu下如何控制风扇速度?
- 轻量简洁的图片查看软件irfanview
热门文章
- [ZJOI2007]仓库建设
- easyui源码翻译1.32--Window(窗口)
- 专业 英语 心智 口才
- tmux + zsh
- [LibTorch Linux] 各版本 LibTorch 下载
- html 将盒子固定浏览器,浏览器默认css样式表 css之左盒子固定,右盒子自适应的一种实现方式...
- 不同模块下包重名怎么解决_注册公司核名通不过,疑难核名有办法解决吗?
- leetcode python3 简单题1.Two Sum
- embedding.assign(embedding_input)的解读
- Flutter布局锦囊---简单的应用栏