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

增长营销大数据数据迁移与工具

picture.image

一、简介

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

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

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


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


    

二、爬取评论数据

评论来源平台

picture.image

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

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

采集评论

picture.image

视频链接如下:


      
          

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

      
    

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

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

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

picture.image

找到这个数据包


      
 `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` 
 


    

picture.image

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

编程实现


          
import requests
          
headers = {
          
     '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("</d","")
          
          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

picture.image

分析

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

  1. 这是王者荣耀 英雄芈月皮肤 ,所以少不了对应的关键字。
  2. 芈月的白晶晶皮肤是电影《大话西游》里面人物 白晶晶 的形象,电影中白晶晶与 至尊宝 人物有关联,这也是这款皮肤的热点、讨论点、卖点。
  3. 同时白晶晶人物与至尊宝关联,延伸到余至尊宝有关的 紫霞 仙子,王者荣耀里面的孙悟空( 猴子 )。
  4. 里面语气词( )等词也表现出来网友对于这款皮肤的话题很多。

2.情感分析

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


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

这里可以对每一条的评论进行打分(01),如果是00.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

picture.image

分析

可以看到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

picture.image

分析

  1. 总体的评分是0.5713098907113867,大于0.5,说明整体趋势上,网友的评论情感还是 正向 的。
  2. 从侧面也可以看出,网友对这款皮肤还是比较喜欢,也是对对应《大话西游》里面至尊宝、紫霞、白晶晶等角色的 各种话题正向不断

四、总结

  1. 再次回顾了如何 获取B站弹幕 评论的方法
  2. 通过两种分析方式: 词云情感分析 ,来分析网友的评论,有利于把握大众某个事物(比如本文的白晶晶皮肤)的看法以及表现的情感。
  3. 对评论的分析不再是局限于词云等可视化,还可以通过 情感方式 去把控网友的评论信息。

更多阅读

2020 年最佳流行 Python 库 Top 10

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

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

特别推荐

picture.image

picture.image

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

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生可观测性技术的落地实践
云原生技术和理念在近几年成为了备受关注的话题。应用通过云原生改造,变得更动态、弹性,可以更好地利用云的弹性能力。但是动态、弹性的环境也给应用以及基础设施的观测带来了更大的挑战。本次分享主要介绍了云原生社区中可观测性相关的技术和工具,以及如何使用这些工具来完成对云原生环境的观测。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论