爬取网易云音乐某一个人的评论
需求来源
上周六的时候和一朋友聊天,聊到网易云系列产品,不知不觉就说到了网易云音乐,我说了些产品细节的问题,比如说,为什么在我不开通会员的情况下,网易云音乐不允许我红心一个会员歌曲,没有购买 没有听歌的权利这是正常,但连点击喜欢的权利都没有却让我很是郁闷,在后面,我为此功能特意下载虾米音乐,发现虾米却是可以红心收费歌曲的,他一脸吃瓜相的看着我说,这种细节功能你都计较啊,然后说出了他自己对网易云音乐的不满,说到了为什么网易云音乐不能看自己或他人的个人评论,我看着他说,这功能哪有人用啊,再说,我要是真的想知道,我可以将这个人的评论爬出来的。这句话说完我就知道要出事情了,果不其然,我那朋友非要我帮他爬取下自己的个人评论,可是那一刻我在心里想,我怎么知道他评论了哪些歌呢?
然后在回去的路上,我一直在想这件事情,可以通过爬取这个人听过的歌的所有评论,然后找到这个人的评论,然后一直就陷入了一个死循环,我怎么获取这个人听过的歌曲呢,似乎是没有办法的。
思路转换
没有办法了,于是换了个思路去思考这个问题,为什么会评论一首歌曲呢,如果是我,我会怎么做,想了很久,我想只有自己比较喜欢的歌曲才会去评论的,于是想何不把这个人的喜欢的所有歌曲中的评论爬下来呢,索性扩大了范围,将这个人的所有个人歌单的歌曲的评论爬下来,然后将属于这个人的评论保存下来。
具体实践
接口分析
思路想好了,就去做,首先肯定是分析接口,结果却发现接口发生了变化,之前的接口是不进行加密的,现在的接口每次的请求都带上了 encSecKey 和 params 参数,显然是加密了,于是在 Github
上发现了这个,网易云音乐新版WebAPI分析,是 Python
实现的,重要的部分是 aesEncrypt
和 rsaEncrypt
两个加密的部分,完成这部分之后呢,后续工作就简单的多了。
实践方案
考虑到用户歌单歌曲数量比较多的情况,在爬取歌曲评论的过程中,开启多进程爬取是必要的,但又考虑到机器性能的原因,队列执行爬取功能也是必须的,不然机器可能在进程爆满的情况效率各方面实在是堪忧啊。
为了考虑以后其它新功能的开发,在此采用了 Laravel5.4
+ PHP7.1
环境下的开发,需要安装php扩展bcmath, 一方面是 Laravel
开发的效率,另一方面 Laravel
在我提到的几个问题上面都有相应的解决方案,数据的爬取则是采用了 Laravel
的 artisan
命令行,对于多进程则是采用了进程控制扩展 PCNTL
,但同时这个多进程爬取的过程则是放到了 redis
驱动下的队列中,同时使用了 Supervisor
进行队列的监控,整个代码我已经开放到 Github。
clone 下来后配置完成后执行:
php artisan netease:playlist 123456
将123456替换成网易云音乐用户的 id,等待结束后,表 user_comments 就能看到用户的评论了。
具体操作可以查看 README.md
感兴趣的同学可以试着玩一玩,如果不是开发人员,可以私信我来爬取后再发给你,后续我会开发出线上的功能供大家使用。
这里我只是提供了个思路,有需要请自行爬取,有问题可以联系我。微信(w1113241948)
爬取网易云音乐某一个人的评论相关推荐
- python3爬取网易云音乐《我们》全部评论
伴随着<后来的我们>的上映,这首歌的评论也是一路暴涨.如今让我们趁着这波秋风(虽然已经有点晚了),把这首歌的评论爬下来.虽然之前还打算做出词云可视化出来······然而,还是太懒了 之前爬 ...
- python爬音乐评论生成词云图_python爬虫+词云图,爬取网易云音乐评论
又到了清明时节,用python爬取了网易云音乐<清明雨上>的评论,统计词频和绘制词云图,记录过程中遇到一些问题 爬取网易云音乐的评论 一开始是按照常规思路,分析网页ajax的传参情况.看到 ...
- python爬取评论_python爬取网易云音乐评论
本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...
- python爬取网易云音乐评论并进行可视化分析
2019独角兽企业重金招聘Python工程师标准>>> 前言 今天为大家一个爬取网易云音乐评论的Python案例,并用Python的第三方库来进行可视化分析,生成图表样式,可以清晰地 ...
- python网易云_用python爬虫爬取网易云音乐
标签: 使用python爬虫爬取网易云音乐 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页版找一下你想要听的歌曲点击进去.按键盘F12打开网页调试工具,点击Ne ...
- python爬取网易云歌单_详解python selenium 爬取网易云音乐歌单名
目标网站: 首先获取第一页的数据,这里关键要切换到iframe里 打印一下 获取剩下的页数,这里在点击下一页之前需要设置一个延迟,不然会报错. 结果: 一共37页,爬取完毕后关闭浏览器 完整代码: u ...
- python爬取网易云音乐热评_python爬取网易云音乐评论
本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...
- python爬虫之爬取网易云音乐的歌曲图片和歌词
0.目录 1.分析页面 2.获取歌曲的id 3.获取歌曲信息 4.获取歌曲图片url 5.获取歌词 6.总结 7.完整代码 1.分析页面 这一次我们来爬取网易云音乐,爬取歌单内的所有歌曲的图片和歌词, ...
- python爬取网易云评论最多的歌_python爬取网易云音乐评论
本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...
最新文章
- 【错误记录】Visual Studio 中配置 NDK 头文件路径 ( NDK 的三个头文件路径 | 与 CPU 架构相关 asm 头文件路径选择 )
- 有没有插件_这 10 款插件让你的 GitHub 更好用、更有趣
- Spring模板对象之RedisTemplate(Spring整合jedis)
- 2010.8.12 CString最大可以多大?
- 乐观锁的一种实现方式——CAS
- 动态改变ListView布局
- Warning: Each record in table should have a unique `key` prop,or set `rowKey` to 解决方法
- 【CCCC】L3-022 地铁一日游 (30分),floyd+大模拟
- postman 返回json乱码_post json 中文编码问题
- 51单片机怎么显示当前时间_我电脑时间显示坏了,怎么修改不了?该怎么办?详细图文教你解决...
- 卡塔尔称攻击卡塔尔通讯社黑客来自断交国
- 网易云音乐歌单制作词云图
- 【Java】插入排序、希尔排序详解
- 如何制作mp3音频文件?分享制作mp3的简单方法
- 2022,博士们,又开始晒工资了
- 北京国家计算机四级网络工程师,关于国家计算机四级网络工程师的介绍
- 从上海回杭州三年,我的生活发生了翻天覆地的变化
- 运行rf2o_laser_odometry时出现错误
- Linux不完全手册(一)(转)
- html5 manifest 安卓,移动APP配置文件 manifest.json 讲解 (附视频)