作者 | 小F

来源 | 法纳斯特(ID:walker398)

近日,民谣歌手花粥被爆出涉嫌抄袭。

具体的我就不细说了,音乐圈的抄袭风波也是喜闻乐见。

比如,李袁杰的「离人愁」,展展与罗罗的「沙漠骆驼」还有陈柯宇的「生僻字」。

本次通过爬取网易云音乐的评论,即目前热歌榜第一名「出山」的评论。

来看看,在没被指出抄袭时,歌曲的评论画风是如何。

被指出抄袭后,又是怎样的一个画风。

 01 网页分析

网上关于爬取网易云音乐评论的方法,大多数都是讲如何构建参数去破解。

事实上不用那么复杂,直接调用接口就可以。

而且网易云音乐对评论也做了限制,只放出了2万条的评论数据。

前后各一万,即评论的前500页和后500页。

最后一页为10079,减500页应该是9579,然后你会发现9575页和9579页的数据是一模一样的。

同样,501页和502页的数据也是一模一样的。

所以何必想着去构造参数,直接调用网易云音乐的评论API就是了,用户信息也是一个道理。

# 网易云音乐评论API,其中1313354324为音乐ID,limit为页面结果限制数,最大可设为100,offset为页面偏移量http://music.163.com/api/v1/resource/comments/R_SO_4_1313354324?limit=20&offset=0

# 用户信息APIhttps://music.163.com/api/v1/user/detail/{用户ID}

这里就以花粥的「出山」为例,具体情况如下。

第一页妥妥的差评。这两天「出山」的评论区热闹非凡。

大部分的评论都是希望能尊重原创,然后下架花粥的歌。

当然,也有不少给花粥洗白的水军在评论区游荡...

02 评论获取

具体代码如下:

import jsonimport timeimport requests

headers = {        'Host': 'music.163.com',        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}

def get_comments(page):    """    获取评论信息    """    url = 'http://music.163.com/api/v1/resource/comments/R_SO_4_1313354324?limit=20&offset=' + str(page)    response = requests.get(url=url, headers=headers)    # 将字符串转为json格式    result = json.loads(response.text)    items = result['comments']    for item in items:

        # 用户名        user_name = item['user']['nickname'].replace(',', ',')        # 用户ID        user_id = str(item['user']['userId'])        # 获取用户信息        user_message = get_user(user_id)        # 用户年龄        user_age = str(user_message['age'])        # 用户性别        user_gender = str(user_message['gender'])        # 用户所在地区        user_city = str(user_message['city'])        # 个人介绍        user_introduce = user_message['sign'].strip().replace('\n', '').replace(',', ',')        # 评论内容        comment = item['content'].strip().replace('\n', '').replace(',', ',')        # 评论ID        comment_id = str(item['commentId'])        # 评论点赞数        praise = str(item['likedCount'])        # 评论时间        date = time.localtime(int(str(item['time'])[:10]))        date = time.strftime("%Y-%m-%d %H:%M:%S", date)        print(user_name, user_id, user_age, user_gender, user_city, user_introduce, comment, comment_id, praise, date)

        with open('music_comments.csv', 'a', encoding='utf-8-sig') as f:            f.write(user_name + ',' + user_id + ',' + user_age + ',' + user_gender + ',' + user_city + ',' + user_introduce + ',' + comment + ',' + comment_id + ',' + praise + ',' + date + '\n')        f.close()

def get_user(user_id):    """    获取用户注册时间    """    data = {}    url = 'https://music.163.com/api/v1/user/detail/' + str(user_id)    response = requests.get(url=url, headers=headers)    # 将字符串转为json格式    js = json.loads(response.text)    if js['code'] == 200:        # 性别        data['gender'] = js['profile']['gender']        # 年龄        if int(js['profile']['birthday']) < 0:            data['age'] = 0        else:            data['age'] = (2018 - 1970) - (int(js['profile']['birthday']) // (1000 * 365 * 24 * 3600))        if int(data['age']) < 0:            data['age'] = 0        # 城市        data['city'] = js['profile']['city']        # 个人介绍        data['sign'] = js['profile']['signature']    else:        data['gender'] = '无'        data['age'] = '无'        data['city'] = '无'        data['sign'] = '无'    return data

def main():    # 前500页    # for i in range(210000, 230000, 20):    # 后500页    for i in range(0, 25000, 20):        print('\n---------------第 ' + str(i // 20 + 1) + ' 页---------------')        get_comments(i)

if __name__ == '__main__':    main()

最后成功获取评论信息。

包含了用户名、用户ID、年龄、性别、区域编码、个人介绍、评论、评论ID、点赞数、评论发表时间。

按理说获取前500页,应该是有1w条的评论。

这里主要是因为大家刷的太快,页面信息一直在改变,所以必然会遗漏一些数据。

后500页还算完整的,就差了500条。

总共加起来1.7w条,数据量还是比较可观的,而且能发现不少信息。

03 数据可视化

1、评论词云图

评论的词云图,经过抄袭风波,画风绝对不同。

第一张为歌曲发布后的评论词云,第二张为被爆抄袭后的评论词云。

前者是「喜欢」「好听」,后者却是「抄袭」「侵权」。

两相比较,真的天差地别。

2、评论用户的年龄分布

二者的评论用户年龄分布都差不多,大多集中在「14-25」。

这也符合网易云的定位,文艺小青年的聚集地。

其中「28」有异常情况出现,这里我是不清楚的...

3、评论用户的年龄分布

歌曲刚发布的时候,男女比例几乎为「1:1」。

在被爆抄袭后,评论里男性明显比女性多。

那么,这能说明什么呢?说明男的更耿直,更嫉恶如仇吗?

大学时的一位舍友特喜欢花粥,天天在放花粥的「老中医」。

那一句「姐是老中医 专治吹牛逼」,简直要把我耳朵听出茧来了。

每次我们都会吐槽这是什么**歌,真**难听...

哈哈,花粥的抄袭该不会伤到了他的心。

4、评论用户的地区分布

大体上差别不大,前后都是集中在「河南」「山东」「江苏」「广东」这几个地方。

无非就是,变一变评论用户最多省份。

5、评论的时间分布

歌曲发布后,评论数以「13:00」这个时间点最高,这是因为歌曲是在那个时间点发布的。

大家都急着抢个前排,占个座,混个脸熟。

第二高峰就是大家所熟悉的黄金时间「19:00」。

被爆抄袭后的评论,评论数是一直在上升的。

8000多条评论,全部都是在3月11号,时间也都是在「14:00-23:00」。

一路飙升,一点没有下降的意思。

直到现在,评论区还在时时更新。

6、评论的日期分布

这里只看歌曲发布后的情况,因为最近的根本没法看。

大家都在疯狂刷评论,一天的评论已经远超1w条了。

第一天最多,慢慢的后面就下来了,这也是常态。

7、挖掘水军

最后来看一下谁的评论数最多,发现水军党啦!!!

这位用户果真花粥的铁粉,愣是刷了43条评论,其中还有一条评论点赞数四十几万。

其中红圈为评论ID,都不一样,说明评论都是唯一的,不重复。

第二位用户,一共25条评论,不过她并没有点赞数多的。

第三位用户,一共24条评论,同样没有点赞数多的评论。

好了,列举三位花粥的铁粉,点到为止。

下面来看一下被爆抄袭后的评论用户。

这位用户愣是评论了99条,其中评论都是一样的,不信看上图,就是末尾变了。

妥妥的水军,疯狂复制粘贴。

这位用户,和评论区喷起来了...

一共94条评论。

这位用户是狂喷类型的,一共69条评论。

好了点到为止,感兴趣的可以自己去操作一把。

由于用户信息相对隐私,我都打上马赛克了,仅供学习。

04 总结

最后来看一下评论的反差(以点赞数为排序)。

总而言之,一句话,且行且珍惜。

(本文为Python大本营转载文章,转载请联系原作者)

福利

扫码添加小助手,回复:1,加入Python技术交流群,共享Python学习资料,定时更新。

推荐阅读:

  • 必备数学基础知识之线性代数篇(附Python代码)

  • R和Python谁更好?这次让你「鱼与熊掌」兼得

  • 利用Python,用4分钟时间搭建一个情感分析系统

  • 10行Python,搭建一个可以自动作曲的神经网络

  • 10行Python,搭建一个游戏AI

  • 如何用Python搭建可以画风迁移的人工智能

  • 00后的算法学习之路:拿下斯坦福和剑桥双offer

  • 如何用Python开发自己的协同工作系统

  • 300道Python面试题,备战春招!

Python大本营“号内搜”功能全新升级

搜索功能更强大,请在公众号菜单栏体验

抄袭风波后 爬取网易云音乐看评论画风如何相关推荐

  1. python爬虫网易云音乐评论再分析_爬取网易云音乐的评论后,竟有这种发现!

    原标题:爬取网易云音乐的评论后,竟有这种发现! 作者 | 志颖 责编 | 胡巍巍 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条. 现在 ...

  2. Selenium解决动态渲染页面----爬取网易云音乐全部评论

    爬取网易云音乐全部评论,我们先随便找一首歌,这里以毛不易的水乡为例.毛不易–水乡 一.常规方法 1. 尝试直接爬取 先直接用歌曲链接直接爬取 import requests#URL url = 'ht ...

  3. python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...

    网易云音乐评论爬虫(三):爬取歌曲的全部评论 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的 ...

  4. Python 爬取网易云音乐所有评论

    题图:by cfunk44 from Instagram 在使用 Ajax 技术加载数据的网站中, JavaScript 发起的 HTTP 请求通常需要带上参数,而且参数的值都是经过加密的.如果我们想 ...

  5. PHP爬虫爬取网易云音乐热门评论

    说起爬虫,恐怕第一个想到的都是Python,PHP的就少之又少. 得空闲下来,自己用PHP做了一个爬虫,爬取网易云音乐的热门评论. 效果图: 下面简单说一下思路 首先,在网易云官网排行榜内,审查元素, ...

  6. python爬取音乐并保存_Python爬取网易云音乐上评论火爆的歌曲

    前言 网易云音乐这款音乐APP本人比较喜欢,用户量也比较大,而网易云音乐之所以用户众多和它的歌曲评论功能密不可分,很多歌曲的评论非常有意思,其中也不乏很多感人的评论.但是,网易云音乐并没有提供热评排行 ...

  7. python爬取网易云音乐歌曲评论信息

    网易云音乐是广大网友喜闻乐见的音乐平台,区别于别的音乐平台的最大特点,除了"它比我还懂我的音乐喜好"."小清新的界面设计"就是它独有的评论区了------各种故 ...

  8. python爬虫网易云音乐评论再分析_Scrapy爬取网易云音乐和评论(一、思路分析)...

    目录: 前提: scrapy这个框架很多人用过,网上教程也很多,但大多就是爬爬小说这种比较简单且有规律的.尤其大多网站它是可以通过点击下一页的方式爬取下一页,我看到的教程也都是这样的.而网易云的按钮光 ...

  9. request + bs4 爬取网易云音乐热门评论

    """ 获取网易云音乐中的评论 """ import requests from bs4 import BeautifulSoup impo ...

最新文章

  1. 《Linux内核原理与分析》第二周作业
  2. mysql 1449 : The user specified as a definer ('root'@'%') does not exist
  3. jquery二维码生成插件jquery.qrcode.js
  4. 新技术不断涌现,下一代云计算的突破口在哪里?
  5. mysql安装和服务相关问题总结
  6. mysql修改存储位置及开启远程
  7. java 通配符 类_关于类:具有多个类的Java泛型通配符
  8. make工具和Makefile基础语法(含有交叉编译、pthread_create()的处理)
  9. oracle link binaries,Oracle环境中使用NFS的mount选项
  10. SQL过滤字符后手工注入漏洞测试(第1题)
  11. 趣说技术 | 用MQ 能完全替代 RPC 调用?
  12. zabbix agent报错 :cannot connect to [[127.0.0.1]:10051]: [111] Connection refused
  13. python实现同花顺股票模拟交易+东方财富模拟交易
  14. Android项目:天气预报App
  15. 部分软件可以正常打开,但图标无法正常显示
  16. matlab编译后方交会,后方交会MATLAB程序实习报告.docx
  17. python 将彩色图片 黑白图片变换
  18. kubesphere K8S Kubeedge 安装配置菜鸟级指导
  19. 在Python应用中Telegram 机器人搭建消息提醒
  20. git 中 A C D M R T U X 分别解释

热门文章

  1. 在BIOS中开启vt-x无效的解决方法
  2. 管道 非阻塞 duxie
  3. 爱旅游app开发策划解决方案
  4. vue环境中bpmn工具实现翻译汉化
  5. 加密经济学中的博弈论
  6. JUnit单元测试、网络编程
  7. 手机上有什么给短视频配音的软件
  8. Listary Pro 能提高效率的一款神器
  9. 如沐春光?汽车供应链市场即将迎来曙光
  10. 万字【Python基础】保姆式教学,零基础快速入门Python