9 月 16 日晚间,周董在朋友圈发布了最新单曲《说好不哭》

发布后,真的让一波人哭了

一群想抢鲜听的小伙伴直接泪奔

因为 QQ 音乐直接被搞崩了

没想到干翻 QQ 音乐的不是网易云音乐

也不是虾米音乐

而是周董!

周董成成功地凭一己之力干翻了 QQ 音乐

那么听过周董新歌后的小伙伴都是怎么评价的呢?

这里,我们获取了 QQ 音乐的近 20W 条评论数据进行分析

看看其中有哪些有趣的东西

一、数据获取

1、请求分析

在 QQ 网页版直接搜索『说好不哭』

很容易就能找到单曲页面

拉到页面最下方

可以看到评论的分页查看按钮

按下 F12 点击第二页

在请求流中就可以看到对应的请求

其中可以看到两个重要参数:pagenumpagesize

将请求 copy 到 Postman 中进行测试

发现可以直接获取到数据

连 Header 都不需要添加

这里尝试对请求参数进行了精简

最终只需要如下几个参数即可

从 Postman 中可以直接获取到对应的代码

import requests

url = "https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg"

querystring = {"biztype":"1","topid":"237773700","cmd":"8","pagenum":"1","pagesize":"25"}

response = requests.request("GET", url, params=querystring)

print(response.text)

这里是单页评论的获取

所有评论的获取只需递增 pagenum 即可

2、数据解析

返回数据中有很多暂时不需要的字段

这里我们只取其中的用户名、评论时间、评论内容、点赞数

对应如下字段

{
"nick": "丨那壹刻永遠消失\"\"",
"praisenum": 1,
"rootcommentcontent": "越听越好听怎么回事!",
"time": 1568729836,
}

由于数据量较大

这里我们暂时将数据存放在 Excel 中

一来无须依赖外部数据库

二来可以使用 Excel 对数据进行二次处理

数据存储代码如下:

def file_do(list_info, file_name):
# 获取文件大小
if not os.path.exists(file_name):
wb = openpyxl.Workbook()
page = wb.active
page.title = 'jay'
page.append(['昵称','时间','点赞数','评论'])
else:
wb = openpyxl.load_workbook(file_name)
page = wb.active
for info in list_info:
try:
page.append(info)
except Exception:
print(info)
wb.save(filename=file_name)

二、数据可视化

1、各时段的评论数

首先我们对评论按小时区间进行汇总

由于时间粒度比较小,这里对时间粒度进行了一些处理

周董的新曲是在 9.16 号 23 点准时发布的

可以看出在发布后的一个小时内(23:00-24:00)

评论数量达到了高峰

占了总评论数的一半以上

另外看了一眼 9.16 23 点之前的评论也很有意思

一种搬好小板凳嗑着瓜子坐等的既视感

2、大家都在说什么

词云生成的方法有很多

可以用代码生成

也可以用一些在线工具

这里我就使用了在线词云工具:wordart

后续可以给大家单独再普及一下

生成效果如下

周杰伦、杰伦字眼很明显

还有大量跑来『打卡』的

『好听』、『来了』、『哭了』、『爱了』

其中少不了的还有『青春』

另外『阿信』的出现估计给了很多人惊喜

3、大家都点赞了哪些评论

我们以点赞数对评论进行了排序

排名靠前的评论是如下一些

另外,QQ 音乐官方也会放出精彩评论

对比下可以看出和我们获取到的数据是比较一致的

只不过官方并不是按点赞个数进行排名的

看得出来这些排名靠前的大都是在回忆青春

这些评论之所以能够得到大家的共鸣

也许他们的青春里都有一个周杰伦吧

周董新歌搞崩QQ,抓取20W评论看看歌迷在说啥的更多相关文章

  1. Python学习-使用Python爬取陈奕迅新歌《我们》网易云热门评论

    <后来的我们>上映也有好几天了,一直没有去看,前几天还爆出退票的事件,电影的主题曲由陈奕迅所唱,特地找了主题曲<我们>的MV看了一遍,还是那个感觉.那天偶然间看到Python中 ...

  2. 测试开发Python培训:抓取新浪微博评论提取目标数据-技术篇

    测试开发Python培训:抓取新浪微博评论提取目标数据-技术篇   在前面我分享了几个新浪微博的自动化脚本的实现,下面我们继续实现新的需求,功能需求如下: 1,登陆微博 2,抓取评论页内容3,用正则表 ...

  3. Python抓取微博评论(二)

    对于新浪微博评论的抓取,首篇做的时候有些考虑不周,然后现在改正了一些地方,因为有人问,抓取评论的时候“爬前50页的热评,或者最新评论里的前100页“,这样的数据看了看,好像每条微博的评论都只能抓取到前 ...

  4. Python抓取微博评论

    本人是张杰的小迷妹,所以用杰哥的微博为例,之前一直看的是网页版,然后在知乎上看了一个抓取沈梦辰的微博评论的帖子,然后得到了这样的网址 然后就用m.weibo.cn进行网站的爬取,里面的微博和每一条微博 ...

  5. python抓取新浪微博评论并分析

    1,实现效果 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb2xhbnphbw==/font/5a6L5L2T/fontsize/400/fill ...

  6. 一篇文章教会你使用Python定时抓取微博评论

    [Part1--理论篇] 试想一个问题,如果我们要抓取某个微博大V微博的评论数据,应该怎么实现呢?最简单的做法就是找到微博评论数据接口,然后通过改变参数来获取最新数据并保存.首先从微博api寻找抓取评 ...

  7. 新浪新闻按keyword抓取实例

    import urllib2 import requests #import MySQLdb import webbrowser import string import re from Beauti ...

  8. Python爬虫抓取微博评论

    第一步:引入库 import time import base64 import rsa import binascii import requests import re from PIL impo ...

  9. NetCloud——一个网易云音乐评论抓取和分析的Python库

    在17的四月份,我曾经写了一篇关于网易云音乐爬虫的文章,还写了一篇关于评论数据可视化的文章.在这大半年的时间里,有时会有一些朋友给我发私信询问一些关于代码方面的问题.所以我最近抽空干脆将原来的代码整理 ...

随机推荐

  1. intellij idea从git检出代码并建立工程

    1. 打开intellij idea,点击configure,settings 2. 左侧展开Version Control,点击Git,点击下图中红框中按钮 3. 在弹出窗口中找到git.exe,点 ...

  2. 【文本处理命令】之grep搜索命令详解

    一.grep搜索命令 在日常使用中grep命令也是会经常用到的一个搜索命令.grep命令用于在文本中执行关键词搜索,并显示匹配的结果. 格式: grep [选项] [文件] Usage: grep [ ...

  3. Java队列和定时器Timer

       一: Queue详解    Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构    Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...

  4. WPF 使用EventTrigger时设置SouceName技巧

    使用情节触发器时,如果有触发源/触发源控件时可以将情节触发器放置最顶级的面板控件的触发器中. 通过blend这个神器真的是可以学到不少东西. 代码: //情节动画放置于顶级控制面板 <Widno ...

  5. Java电商项目-1.构建数据库,搭建项目环境

    目录 到Github获取源码请点击此处 一. 数据库还原 二. Mybatis逆向生成工具的使用 三. 搭建项目环境 四. 在linux虚拟机上部署zookeeper, 搭建Dubbo服务. linu ...

  6. MySQL(8)---游标

    Mysql(8)-游标 上一遍博客写了有关存储过程的语法知识 Mysql(7)---存储过程 游标或许你在工作中很少用到,但用不到不代表不去了解它,但你真正需要它来解决问题的时候,再花时间去学习很可能 ...

  7. Go文件内容追加问题

    今天在用文件追加时,遇到点小问题,一直没法追加,起初是这样的 fp,err1 = os.OpenFile(filename,os.O_APPEND,0666) 上面这个死活加不了,后面改成 fp,er ...

  8. PHP+Ajax手机移动端发红包实例

    基本流程:当输入完红包数量和总金额后,PHP会根据这两个值进行随机分配每个金额,保证每个人都能领取到一个红包,且每个红包金额不等,并且所有红包金额总额等于总金额. 实现原理:设定总金额为10元,有N个 ...

  9. 分布式服务防雪崩熔断器(Hystrix),实现服务降级

    Hystrix是什么? hystrix对应的中文名字是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本身的功能不谋而合,因此Netflix团队将该框架命名 ...

  10. js个人笔记简记

    正则表达式 创建正则表达式的两种方法:   Var reg = new RegExp(‘’) Var reg = / a/ 后面三个参数g:全局匹配 i:不区分大小写 m:多行匹配 开头结尾有用 常见 ...