当前位置: 首页> 正规的威尼斯人网址
一起爬山吗?Python爬取并分析201865条《隐秘的角落》弹幕
发布时间:20-11-22
- 最新
- 精选
- 区块链
- 汽车
- 创意科技
- 媒体达人
- 电影音乐
- 娱乐休闲
- 生活旅行
- 学习工具
- 历史读书
- 金融理财
- 美食菜谱
一起爬山吗?Python爬取并分析 201865 条《隐秘的角落》弹幕
本文不涉及剧透!请放心食用 最近又火了一部国产剧:《隐秘的角落》 如果你没看过,那可能会对朋友圈里大家说的“一起去爬山”、“小白船”、“还有机会吗”感到莫名其妙。 除了爱奇艺,可以考虑使用豆瓣、微博、知乎(电视剧数据分析 · 万能三件套)的数据。 剧很精彩,但追剧界有句俗话说得好:“弹幕往往比剧更精彩”,为了让精彩延续下去,我终究没能忍住对弹幕下手。[1] 爱奇艺的弹幕数据是以 .z 形式的压缩文件存在的,先获取 tvid 列表,再根据 tvid 获取弹幕的压缩文件,最后对其进行解压及存储,大概就是这样一个过程。 这里参考了“数据兔小白[2]的代码,我又修改后实现分集爬取所有弹幕。 注:避免引起不必要的麻烦,本爬虫仅指出关键步骤,不再公开提供。 共爬取得到201865 条《隐秘的角落》弹幕数据。 按照用户id分组并对弹幕id计数,可以得到每位用户的累计发送弹幕数。 第一名竟然发送了2561条弹幕,这只是一部12集的网剧啊。 难道他/她是水军?每条都发的差不多? 这位“弹幕发射器”朋友,在每一集的弹幕量又是如何呢? 是不是通过上图可以侧面说明个别剧集的戏剧冲突更大,更能引发观众吐槽呢? “弹幕发射器”同志,11、12集请加大输出! 抛开“弹幕发射器”同志,我们继续探究一下分集的弹幕。 看看每一集当中,哪些弹幕大家都很认同(赞)? 每一集的最佳弹幕都是当集剧情的浓缩,这些就是观众们票选出来的梗(吐槽)啊! 应该不算剧透吧,不算吧,不算吧 实在不行我请你去爬山也可 除了剧本、音乐等,“老戏骨”和“小演员”们的演技也获得了网友的一致好评。 这部剧虽然短短12集,但故事线不仅仅在一两个人身上。每个人都有自己背后的故事,又因为种种巧合串联在一起,引发观众的持续性讨论。 我们统计一下演员们在弹幕中的出现次数,看看剧中的哪些角色大家提及最多。 先计算出现次数,再利用pyecharts制作极坐标图。 比较让我疑惑的三个小孩当中的朱朝阳提及量这么低,按理说应该与其其他两位大体相当啊。 又去源数据看了一遍,提及朱朝阳(朝阳)的弹幕确实很少,因为大部分在弹幕中观众一般就叫他“学霸”、“儿子”之类的了。 总所周知,一篇数分文章不能少了词云。 每篇的词云都尽量用不同的方式。这次我采用的是stylecloud,它算是wordcloud词云包的升级版,看起来美观多了。 除了主角的名字以外,在这部以“孩子”为主题的剧中,对孩子的思想、行为的探讨占据重要部分,另外,剧中从年长的戏骨到年幼的孩子,每一个人都贡献了高光的演技,对他们演技的称赞也成为高频词汇。 而最出圈的“爬山”梗,更是被频频提及。 从《无证之罪》到《隐秘的角落》,都在证明悬疑犯罪题材在当下并非没有市场,要收获高人气高口碑,如何传播与营销终归只是手段,越来越多的团队沉下心来打磨精品剧集,观众才会愿意为剧买单,让“爬山”这样的梗一步步“出圈”。 参考文章
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
弹幕发射器
danmu_counts = df.groupby('uid')['contentsId'].count().sort_values(ascending = False).reset_index()
danmu_counts.columns = ['用户id','累计发送弹幕数']
danmu_counts.head()
累计发送弹幕数用户top5
真 · 弹幕发射器
df_top1.head(10)
然而并不是,每一条弹幕都是这位观众的有感而发,可能他/她只是在发弹幕的同时顺便看看剧吧。
分集&平均弹幕量
df_like.columns = ['剧集','弹幕','赞']
df_like
每一集中点赞最多的弹幕
朝阳东升
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()
弹幕中提到的主要演员
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')
20万条弹幕词云
一起爬山吗?
[2] 数据兔小白: 爬取爱奇艺弹幕后,我找到了共鸣
作者:朱小五
来源:凹凸数据
_往期文章推荐_
阅读原文
已同步到看一看写下你的想法
前往“发现”-“看一看”浏览“朋友在看”
看一看入口已关闭
在“设置”-“通用”-“发现页管理”打开“看一看”入口
我知道了
已发送
取消
发送到看一看发送
一起爬山吗?Python爬取并分析 201865 条《隐秘的角落》弹幕
字
发送中
微信扫一扫
使用小程序
取消 允许
取消 允许
微信版本过低
当前微信版本不支持该功能,请升级至最新版本。
我知道了 前往更新
确定删除回复吗?
取消 删除
知道了
长按识别前往小程序
本站仅按申请收录文章,版权归原作者所有
如若侵权,请联系本站删除
觉得不错,分享给更多人看到
Crossin的编程教室 微信二维码
(adsbygoogle = window.adsbygoogle || []).push({}); 分享这篇文章
Crossin的编程教室 最新文章
一起爬山吗?Python爬取并分析 201865 条《隐秘的角落》弹幕
又来给大家送书啦!抽5本Python好书免费包邮
教到你会为止的Python入门课程今日开班
清洗数据,我习惯用这 7 步!
华为开始招募了!
Python解读高考:哪里的高校最多?什么专业最热门?
Crossin带你从零出发,掌握Python技能
Crossin带你从零出发,掌握Python技能
pyecharts绘制复联超级英雄战斗力
【码上行动】数据分析基础小组上线通知
(adsbygoogle = window.adsbygoogle || []).push({});
(function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); (function(){ var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?ba34c9f41d18b62312e960833b3cb4ae":"https://jspassport.ssl.qhimg.com/11.0.1.js?ba34c9f41d18b62312e960833b3cb4ae"; document.write(''); })();