更多精彩推荐,请关注我们

作者:Mika

数据:真达  

后期:泽龙

【导语】:今天我们来聊聊周杰伦的新歌《Mojito》,Python技术部分请看第三部分公众号后台,回复关键字“周杰伦”获取完整数据。

Show me data,用数据说话

今天我们聊一聊 周杰伦《Mojito》

点击下方视频,先睹为快:

6月12日0:00,周杰伦的最新单曲《Mojito》正式上线。

对周杰伦歌迷来说,这一天简直就是过年了。因为距离周杰伦上一次发歌,已经过去了半年时间;而他的上一张专辑《周杰伦的床边故事》,已经是4年前的事情了。

这首以一种传统的古巴鸡尾酒命名的《Mojito》,前奏就充满浓浓的古巴风情和拉丁节奏,整首歌都写出在遇见爱情时令人神往的浪漫情调。尤其是令人惊艳的rap部分,不仅让人感叹我的青春回来了!

《Mojito》一经上线也是火爆全网,300多万人提前预约,一小时内销量破100万,这也直接导致 QQ 音乐崩溃。

今天我们就用数据来全方位解读一下,周杰伦的新歌《Mojito》。

豆瓣数据

1

首先我们分析整理了《Mojito》的豆瓣音乐数据,目前这首歌在豆瓣共有2万3千余人进行评价,分数为6.9分。

数据来源:豆瓣音乐短评

 https://music.douban.com/subject/35093585/comments/

数据量:498条

虽然比起周董早年音乐的分数有一定差距,但是对比起近两年发布的《我是如此相信》《说好不哭》在豆瓣的6.3分和5.9分,这首mojito还是不错的。

再具体看到评分数据可以发现,给出3星的人最多,占比39.02%。其次是4星,21.84%。给出5星的占比16.49%。

我们进一步把给出1-2分的归类为负向评分,把4-5分的归为正向评分。

分别对比负向的正向的词云,我们可以看到:

在负向评价中,提到最多的就是"失望"、"难听"、"编曲"。正向评价中,大多数人都表示"好听"、"有夏天"的感觉、"喜欢"。有意思的是,无论正向负向评价都提到了充满异域风情的《Mojito》很容易让人联想到当年周董的那首《迷迭香》。

微博数据

2

接下来我们分析了周杰伦中文网在微博发布的mojito mv的评论数据。

微博:周杰伦中文网JayCn发布的《Mojito》MV

https://weibo.com/1165631310/J6cxJ67HC?filter=hot&root_comment_id=0&type=comment

数据集大小(去重之后):

  • 评论数据:9976条

  • 粉丝数据:9107条

分析发现,评论用户性别方面,女生占了绝大多数,占比78.82%。

而用户年龄方面,也是妥妥的90后的天下,占比高达74.91%。

微博评论中大家都在说些什么呢?

可以看到大多数人都表示"好听"、"喜欢"、"很有夏天"的感觉。让人"单曲循环",特别"上头"。同时经典的周氏rap,也是整首歌的灵魂,一听就太有那味儿了!

教你用Python爬取QQ音乐评论数据

3

最后我们看到qq音乐的数据:

QQ音乐评论信息。

https://y.qq.com/n/yqq/album/0009C3rp3Kfwg0.html

数据量:20245

我们先看到结论

首先在实时评论走势图上可以看到,在歌发布的12日0时,评论人数最高,之后慢慢回落。

评论中也让人感叹"好听"、"青春回来了"。让歌迷们纷纷下单支持,毕竟上线一小时突破一百万张,让QQ 音乐软件一度崩溃,周董的影响力还是不容小觑的。

下面我们看到具体的步骤

我们使用Python分别获取了QQ音乐评论、豆瓣短评和微博相关的评论数据,进行了数据分析。此处我们展示QQ音乐评论分析部分。按照业务分析流程进行:

  1. 数据获取

  2. 数据处理

  3. 数据可视化

01 数据获取

首先打开QQ音乐,搜索Mojito。翻到评论区后,使用谷歌浏览器的检查功能,切换到Network部分,点击翻页进行网络抓包,很容易发现发现评论区的内容是被封装在json中的,如下图所示:

切换到headers处,找到请求URL地址,我们对请求地址进行精简和测试,得到评论数据请求的URL地址:

https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg?biztype=2&topid=12924001&cmd=8pagenum=0&pagesize=25

其中参数pagenum代表页数,通过遍历即可获取所有数据,代码如下:

# 导入包
import pandas as pd
import time
import requests
import json
from fake_useragent import UserAgentdef get_qq_comment(page_num):# 存储数据df_all = pd.DataFrame()for i in range(page_num):# 打印进度print('我正在获取第{}页的信息'.format(i))# 获取URLurl = 'https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg?biztype=2&topid=12924001&cmd=8pagenum={}&pagesize=25'.format(i)# 添加headersheaders = {'user-agent': UserAgent().random}# 发起请求try:r = requests.get(url, headers=headers)except Exception as e:print(e)continue# 解析网页json_data = json.loads(r.text)# 获取数据comment_list = json_data['comment']['commentlist']# 昵称nick_name = [i.get('nick') for i in comment_list]# 评论内容content = [i.get('rootcommentcontent') for i in comment_list]# 评论时间comment_time = [i.get('time') for i in comment_list]# 点赞数praise_num = [i.get('praisenum') for i in comment_list]# 存储数据df = pd.DataFrame({'nick_name': nick_name,'content': content,'comment_time': comment_time,'praise_num': praise_num})# 追加数据df_all = df_all.append(df, ignore_index=True)# 休眠一秒time.sleep(1)return df_all# 运行函数
df = get_qq_comment(page_num=912) 

通过上述程序,共获取到截止6.13日22217条评论信息,数据集如下所示:

df.head()

02 数据读入和数据处理

读入数据集,并对获取的数据集进行清洗。

# 导入所需包
import jieba
import stylecloud
from pyecharts.charts import Pie, Bar, Map, Line, WordCloud, Page
from pyecharts import options as opts
from pyecharts.globals import SymbolType, WarningType
WarningType.ShowWarning = False# 读入数据
df = pd.read_excel('../data/QQ音乐评论数据6.13.xlsx')# 查看重复值和空值
print(df.duplicated().sum())
print(df.isnull().sum()) 
# 转换函数
def transform_time(time_second):time_array = time.localtime(time_second)otherStyleTime = time.strftime('%Y-%m-%d %H:%M:%S', time_array) return otherStyleTime# 时间数据处理
df['comment_time'] = df['comment_time'].apply(lambda x: transform_time(x))# content初步处理
pattern = re.compile(r'\[em\](.*?)\[/em\]')
df['content'] = df.content.str.replace(pattern, '')
df.head() 

03 数据可视化分析

Mojito评论时间走势图

# 日期数量
comment_num = df.comment_time.str.split(':').str[0].value_counts().sort_index()
comment_num[:5]
2020-06-12 00    12673
2020-06-12 01     1185
2020-06-12 02      364
2020-06-12 03      146
2020-06-12 04       80
Name: comment_time, dtype: int64
# 产生数据
x_line1 = [i.replace('2020-','') for i in comment_num.index.to_list()]
y_line1 = comment_num.values.tolist()# 绘制面积图
line1 = Line(init_opts=opts.InitOpts(width='1350px', height='750px'))
line1.add_xaxis(x_line1)
line1.add_yaxis('', y_line1,markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max', name='最大值'),opts.MarkPointItem(type_='min', name='最小值')]))
line1.set_global_opts(title_opts=opts.TitleOpts('Mojito评论人数走势图'), xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate='30')),visualmap_opts=opts.VisualMapOpts(max_=12673))
line1.set_series_opts(label_opts=opts.LabelOpts(is_show=False), linestyle_opts=opts.LineStyleOpts(width=3))
line1.render() 

QQ音乐评论词云图

def get_cut_words(content_series):# 读入停用词表stop_words = [] with open(r"stop_words.txt", 'r', encoding='utf-8') as f:lines = f.readlines()for line in lines:stop_words.append(line.strip())# 添加关键词my_words = ['周杰伦', '一首歌', '好好听', '方文山', '30多岁']    for i in my_words:jieba.add_word(i) #     自定义停用词my_stop_words = ['歌有', '真的', '这首', '一首', '一点', '反正', '一段', '一句', '首歌', '啊啊啊', '哈哈哈', '转发', '微博', '那段', '他会']   stop_words.extend(my_stop_words)               # 分词word_num = jieba.lcut(content_series.str.cat(sep='。'), cut_all=False)# 条件筛选word_num_selected = [i for i in word_num if i not in stop_words and len(i)>=2]return word_num_selected
text1 = get_cut_words(content_series=df.content)
text1[:5]
['致敬', '久石', '人生', '旋转', '木马']
# 绘制词云图
stylecloud.gen_stylecloud(text=' '.join(text1), max_words=1000,collocations=False,font_path=r'‪C:\Windows\Fonts\msyh.ttc',icon_name='fas fa-music',size=624,output_name='./词云图/QQ音乐评论词云图.png')

本文出品:CDA数据分析师(ID: cdacdacda)

近期开班情况

2020年6月28日

一小时销量破百万,Python告诉你周杰伦的《Mojito》到底有多火!相关推荐

  1. python六角星绘制_一小时销量破百万,Python告诉你周杰伦的《Mojito》到底有多火!...

    [导语]:今天我们来聊聊周杰伦的新歌<Mojito>,Python技术部分请看第三部分,Show me data,用数据说话 6月12日0:00,周杰伦的最新单曲<Mojito> ...

  2. python开发之父亲自编写《python编程从入门到实践》中译版图书销量破百万册,完整版PDF开放下载

    为什么要学习python 主流编程语言 世界上的编程语言有600多种,但真正大家主流在使用的最多二三十种,不同的语言有自己的特点和擅长领域,随着计算机的不断发展,新语言在不断诞生,也同时有很多老旧的语 ...

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

    一.简介 1.这两天在朋友圈.短视频,微博这些社交平台经常刷到这些内容(王者荣耀芈月白晶晶的皮肤). 2.好奇的我就去百度了一下,发现是王者荣耀最近出的一个皮肤,看到很多人都在讨论,我也开始爬取评论, ...

  4. wps单机无网络版_单平台销量破百万,这个国产单机系列要出网游,还要上主机...

    他们想做"国际顶级的单机游戏开发商". 文/彭子诚 作为一款国产单机游戏,<古剑奇谭三>在去年年底上市后,至今在 Steam 上依然保持着 83% 的好评率. 大量的玩 ...

  5. 单品销量破百万+,登顶天猫类目第一!摇滚动物园的爆品打造攻略你学会了吗?

    4 月 12 日,天猫在其官博公布今年天猫金妆奖入围的 100 件商品名单,并宣布评审正式开始,此次金妆奖集结了 100 多位美妆界顶级意见领袖,每人只能在 100 件入围的美妆单品中投出 3 票,十 ...

  6. 开售16天销量破百万,为何小米8还是那么让人失望?

    时隔一年的时间,小米8成为除MIX系列外的首款全面屏旗舰,并且还有众多首次对外宣告的"黑科技".8系列开售了16天就卖了102.6万台.尽管有多处升级,然还是有很大多机友并不买账, ...

  7. Python 爬取周杰伦《Mojito》MV 弹幕,这个评论亮了!

    作者 | 黄伟呢 来源 | 数据分析与统计学之美 6月12日凌晨0点,周杰伦最新单曲<Mojito>正式上线,仅上线1小时销售量就超过百万张,预计今天这首单曲的销量仍然会继续攀升.这次新歌 ...

  8. 【​观察】解读一加6手机“22天破百万”的成功密码

    申耀的科技观察 读懂科技,赢取未来! 持续下滑的智能手机市场迎来久违的好消息. 根据Gartner的数据显示,2018年第一季度全球智能手机销量回升,与去年同期相比增长1.3%.2018年第一季度全球 ...

  9. 陈浩洋参访中馥科技集团仓储中心,直播单小时破百万

    昨日,军事专家/电商达人陈浩洋参访中馥科技集团万坪仓储中心.参访过程中,陈浩洋表达了对仓库规模.仓库标准化管理方式的赞许以及对中馥科技集团高要求选品供应链的认可.为保证每一瓶送到顾客手中的酒都万无一失 ...

最新文章

  1. 再见,Navicat!这个Pycharm的兄弟真香!
  2. FastReport.Net 使用字符串
  3. C++11 标准新特性: 右值引用与转移语义
  4. MAN PAGE: cvslock(1)
  5. Oracle 将一个查询结果值动态赋值给一个变量
  6. 前端 angular 和 bootstrap 的安装步骤
  7. python做图书馆管理系统-为什么我学了一个月python基础了,还写不出简单图书馆系统?...
  8. 异步读写之利用完成历程
  9. RESTLET开发实例
  10. Onvif协议学习:12、修改分辨率
  11. 服务器准系统diy,“攒”服务器与DIY服务器
  12. 分布式项目Maven打包出现Could not resolve dependencies for project、Could not find artifact问题解决
  13. JavaScript函数防抖与截流
  14. 使用ipv6内网穿透,实现私有云盘搭建,实现远程控制等功能
  15. 约束优化问题的一阶条件(KKT条件)、互补松弛条件、拉格朗日对偶问题、SVM
  16. IPv6基础介绍及常用命令盘点
  17. php fwrite写入失败,奇怪问题 php-fpm 下使用 fwrite 写入 /tmp 目录失败
  18. 数据库 Mysql 终端代码
  19. GMT格式的时间处理 Thu Jan 01 00:00:00 +0000 2009成时间戳
  20. vk和uview表单图片上传

热门文章

  1. Maya寻找Mel文件的位置
  2. 世界各国GDP相关面板数据(1960-2019年)
  3. C++ std::ios::tie
  4. F. 1.小W 的质数(prime)[欧拉筛再理解]
  5. linux etc目录讲解
  6. 中科院,量子计算机,中科院传来喜讯,中国量子技术领先世界,美:中国学者都不睡觉吗...
  7. 损失函数MSELoss和CELoss
  8. SEO并不难学,我是如何学习好SEO的
  9. Simulink移动机器人仿真学习--Trick记录
  10. 23种设计模式——模板模式