周董新歌搞崩QQ,抓取20W评论看看歌迷在说啥
9 月 16 日晚间,周董在朋友圈发布了最新单曲《说好不哭》
发布后,真的让一波人哭了
一群想抢鲜听的小伙伴直接泪奔
因为 QQ 音乐直接被搞崩了
没想到干翻 QQ 音乐的不是网易云音乐
也不是虾米音乐
而是周董!
周董成成功地凭一己之力干翻了 QQ 音乐
那么听过周董新歌后的小伙伴都是怎么评价的呢?
这里,我们获取了 QQ 音乐的近 20W 条评论数据进行分析
看看其中有哪些有趣的东西
一、数据获取
1、请求分析
在 QQ 网页版直接搜索『说好不哭』
很容易就能找到单曲页面

拉到页面最下方
可以看到评论的分页查看按钮

按下 F12 点击第二页
在请求流中就可以看到对应的请求

其中可以看到两个重要参数:pagenum 和 pagesize
将请求 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评论看看歌迷在说啥的更多相关文章
- Python学习-使用Python爬取陈奕迅新歌《我们》网易云热门评论
<后来的我们>上映也有好几天了,一直没有去看,前几天还爆出退票的事件,电影的主题曲由陈奕迅所唱,特地找了主题曲<我们>的MV看了一遍,还是那个感觉.那天偶然间看到Python中 ...
- 测试开发Python培训:抓取新浪微博评论提取目标数据-技术篇
测试开发Python培训:抓取新浪微博评论提取目标数据-技术篇 在前面我分享了几个新浪微博的自动化脚本的实现,下面我们继续实现新的需求,功能需求如下: 1,登陆微博 2,抓取评论页内容3,用正则表 ...
- Python抓取微博评论(二)
对于新浪微博评论的抓取,首篇做的时候有些考虑不周,然后现在改正了一些地方,因为有人问,抓取评论的时候“爬前50页的热评,或者最新评论里的前100页“,这样的数据看了看,好像每条微博的评论都只能抓取到前 ...
- Python抓取微博评论
本人是张杰的小迷妹,所以用杰哥的微博为例,之前一直看的是网页版,然后在知乎上看了一个抓取沈梦辰的微博评论的帖子,然后得到了这样的网址 然后就用m.weibo.cn进行网站的爬取,里面的微博和每一条微博 ...
- python抓取新浪微博评论并分析
1,实现效果 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb2xhbnphbw==/font/5a6L5L2T/fontsize/400/fill ...
- 一篇文章教会你使用Python定时抓取微博评论
[Part1--理论篇] 试想一个问题,如果我们要抓取某个微博大V微博的评论数据,应该怎么实现呢?最简单的做法就是找到微博评论数据接口,然后通过改变参数来获取最新数据并保存.首先从微博api寻找抓取评 ...
- 新浪新闻按keyword抓取实例
import urllib2 import requests #import MySQLdb import webbrowser import string import re from Beauti ...
- Python爬虫抓取微博评论
第一步:引入库 import time import base64 import rsa import binascii import requests import re from PIL impo ...
- NetCloud——一个网易云音乐评论抓取和分析的Python库
在17的四月份,我曾经写了一篇关于网易云音乐爬虫的文章,还写了一篇关于评论数据可视化的文章.在这大半年的时间里,有时会有一些朋友给我发私信询问一些关于代码方面的问题.所以我最近抽空干脆将原来的代码整理 ...
随机推荐
- shutil模块(了解)
目录 一.shutil模块 1.1 zipfile压缩解压缩 1.2 tarfile压缩解压缩 一.shutil模块 高级的文件.文件夹.压缩包处理模块. import shutil # shutil ...
- MySQL中使用group_concat遇到的坑
在使用group_concat的过程中遇到个问题,这里记录一下:在MySQL中有个配置参数group_concat_max_len,它会限制使用group_concat返回的最大字符串长度,默认是10 ...
- requests库的使用、安装及方法的简单介绍
requests库的使用.安装及方法的简单介绍 1.requests库的概述 requests库是一个简洁且简单的处理HTTP请求的第三方库,是公认的最好获得第三方信息的库. requests库更多信 ...
- 关于python的十一道练习
关于python的十一道练习 1.编写程序,输入一个自然数字符串,然后输出各位数字之和.例如,输入字符串1234,输出10. def sums1(): #第一题 strs=input('请输入一个自然 ...
- Z从壹开始前后端分离【 .NET Core2.2/3.0 +Vue2.0 】框架之五 || Swagger的使用 3.3 JWT权限验证【必看】
本文梯子 本文3.0版本文章 前言 1.如何给接口实现权限验证? 零.生成 Token 令牌 一.JWT ——自定义中间件 0.Swagger中开启JWT服务 1:API接口授权策略 2.自定义认证之 ...
- JDK1.8新特性——Collector接口和Collectors工具类
JDK1.8新特性——Collector接口和Collectors工具类 摘要:本文主要学习了在Java1.8中新增的Collector接口和Collectors工具类,以及使用它们在处理集合时的改进 ...
- 移动端适配方案(rem+flex)
为什么用rem不用px? 主流:各大网站的移动版绝大多数都是用的rem. 移动端屏幕分辨率差别太大:最低适配的iPhone6,分辨率仅为750*1334.而现在市面上大多数手机,都达到了1080* ...
- 跳转常规 -- 为什么不要使用404、500等http状态码作为业务代码响应
不要使用HTTP状态码作为业务代码响应 HTTP状态码 是指浏览器访问网址,成功或异常时浏览器或服务器告知用户的代码数字,它指的是网络或服务器的状态,有着不同的含义. 参加MDN.Java Api,常 ...
- oracle通过impdp导入不同表用户、不同表空间的数据
原创 tegwy 发布于2013-04-21 17:34:39 阅读数 46592 收藏 展开 impdp smtj2012/密码@localhost/devdb DIRECTORY=dump_dir ...
- [PHP] 近期接手現有的企邮前端框架业务所遇困难
1.邮箱前端有三大产品线,包括免费邮箱,VIP邮箱,企业邮箱,使用的一套代码,在代码中进行的逻辑判断处理,根据不同的配置进行不同的业务操作.有很多逻辑是各产品线是不同的,需要仔细开发和判断才能不会影响 ...