王者荣耀白晶晶皮肤1小时销量破千万!用 Python 分析我发现了原因

共 1391字,需浏览 3分钟

 ·

2021-02-04 21:15

一、简介

1、这两天在朋友圈、短视频,微博这些社交平台经常刷到这些内容(王者荣耀芈月白晶晶的皮肤)。


2、好奇的我就去百度了一下,发现是王者荣耀最近出的一个皮肤,看到很多人都在讨论,我也开始爬取评论,看看大家对这款皮肤的看法?以及为什么这么热门!


3、这个皮肤是与电影《大话西游》有关,具体介绍可以去官网了解(链接在下方),今天的目的不是介绍皮肤,而是学习爬虫数据分析

https://pvp.qq.com/coming/v2/skins/0125-bjjmy.shtml?ADTAG=pvp.skin.pcgw


二、爬取评论数据

评论来源平台


这里选择了B站,通过关键字:王者荣耀白晶晶,可以搜索相关的视频,这里采集多个视频弹幕评论去进行分析。


为了讲解如何获取数据,这里选择了播放量(点击量)最大的视频作为样本采集评论

采集评论


视频链接如下:


https://www.bilibili.com/video/BV1dr4y1N7YT?from=search&seid=14952442383235795708


确认好视频后,接着开始获取视频里面的弹幕和下方的评论内容。


我之前写过一篇获取B站视频评论的文章分析B站《送你一朵小红花》弹幕评论,看过这篇文章的小伙伴都知道b站视频的弹幕怎么获取。不过这里再把方法讲一下。


1.首先在视频页面按F12,查看数据包



找到这个数据包


https://api.bilibili.com/x/v2/dm/thumbup/stats?oid=287593212&ids=44298586098761735


可以获取oid值287593212

2.获取弹幕评论


b站有专门获取弹幕评论的api接口,通过改变oid的值就可以获取每一个视频的弹幕评论


https://api.bilibili.com/x/v1/dm/list.so?oid=287593212




这样我们就可以获取到网友的弹幕评论数据了,下面开始对这些数据进行分析。

编程实现

import requestsheaders = {     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0'}oidlist=['287593212','286279864','285602874','288005981','287970790','287621268']for j in oidlist:    url="https://api.bilibili.com/x/v1/dm/list.so?oid="+str(j)    r = requests.get(url, headers=headers)


这里oidlist是六个,表示获取六个视频的弹幕评论数据


with open("commit.txt","a+",encoding='utf-8') as f:    for i in list_s:          i = (i.split(">"))[1].replace("          i = i.replace("?","").replace("。","").replace(",","").replace("+","").replace("!","").replace("....","").replace(".......","")          f.write(str(i)+"\n")


获取到的数据进行相关的处理(去掉一下网页标签,标点符号?。,....)


最后保存到commit文本文件中。


三、分析评论数据

1.词云分析

###1.词云分析def analysis1():     with open("commit.txt", 'r', encoding='utf8') as f:        st = f.read()
#print(st) word_list = jieba.cut(st) result = " ".join(word_list) # 分词用 隔开 # 制作中文云词 icon_name = 'fab fa-qq' # 图片保存名称 picp = '1.png' gen_stylecloud(text=result, font_path='simsun.ttc', # icon_name='fas fa-envira', icon_name='fas fa-cannabis', max_words=100, max_font_size=70, output_name='icon1.png', ) # 必须加中文字体,否则格式错误

效果1


分析

词云图中,字体越大表示提到的次数越多


  1. 这是王者荣耀英雄芈月皮肤,所以少不了对应的关键字。

  2. 芈月的白晶晶皮肤是电影《大话西游》里面人物白晶晶的形象,电影中白晶晶与至尊宝人物有关联,这也是这款皮肤的热点、讨论点、卖点。

  3. 同时白晶晶人物与至尊宝关联,延伸到余至尊宝有关的紫霞仙子,王者荣耀里面的孙悟空(猴子)。

  4. 里面语气词()等词也表现出来网友对于这款皮肤的话题很多。

2.情感分析

情感分析我们可以借助snownlp库去解决问题


###导入相应的库from snownlp import SnowNLP

这里可以对每一条的评论进行打分(0~1),如果是0~0.5为消极,0.5~1为正向。


废话不多说,直接实战!


这里也去前5条看看效果

with open("commit.txt", 'r', encoding='utf8') as f:   data = f.readlines()
for i in data[0:5]: sentiments = SnowNLP(i).sentiments print(i) print(sentiments) print("--------------------")

效果2


分析


可以看到snownlp库提供的分析方法还算可以。


情感分析平均分


这么条评分,因此我们可以对应所以评论进行评分,然后求其平均分,这样可以大概了解,网友目前的体感情是趋向消极还是正向。


 with open("commit.txt", 'r', encoding='utf8') as f:     data = f.readlines()
sum=0 for i in data: sentiments = SnowNLP(i).sentiments #print(i) sum = sum+sentiments #print(sentiments) #print("--------------------") print("情感分析平均分:"+str(sum/len(data)))


效果3


分析


  1. 总体的评分是0.5713098907113867,大于0.5,说明整体趋势上,网友的评论情感还是正向的。

  2. 从侧面也可以看出,网友对这款皮肤还是比较喜欢,也是对对应《大话西游》里面至尊宝、紫霞、白晶晶等角色的各种话题正向不断



四、总结


  1. 再次回顾了如何获取B站弹幕评论的方法


  2. 通过两种分析方式:词云情感分析,来分析网友的评论,有利于把握大众某个事物(比如本文的白晶晶皮肤)的看法以及表现的情感。


  3. 对评论的分析不再是局限于词云等可视化,还可以通过情感方式去把控网友的评论信息。

更多阅读



2020 年最佳流行 Python 库 Top 10


2020 Python中文社区热门文章 Top 10


5分钟快速掌握 Python 定时任务框架

特别推荐




点击下方阅读原文加入社区会员

浏览 76
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报