需求来源

上周六的时候和一朋友聊天,聊到网易云系列产品,不知不觉就说到了网易云音乐,我说了些产品细节的问题,比如说,为什么在我不开通会员的情况下,网易云音乐不允许我红心一个会员歌曲,没有购买 没有听歌的权利这是正常,但连点击喜欢的权利都没有却让我很是郁闷,在后面,我为此功能特意下载虾米音乐,发现虾米却是可以红心收费歌曲的,他一脸吃瓜相的看着我说,这种细节功能你都计较啊,然后说出了他自己对网易云音乐的不满,说到了为什么网易云音乐不能看自己或他人的个人评论,我看着他说,这功能哪有人用啊,再说,我要是真的想知道,我可以将这个人的评论爬出来的。这句话说完我就知道要出事情了,果不其然,我那朋友非要我帮他爬取下自己的个人评论,可是那一刻我在心里想,我怎么知道他评论了哪些歌呢?

然后在回去的路上,我一直在想这件事情,可以通过爬取这个人听过的歌的所有评论,然后找到这个人的评论,然后一直就陷入了一个死循环,我怎么获取这个人听过的歌曲呢,似乎是没有办法的。

思路转换

没有办法了,于是换了个思路去思考这个问题,为什么会评论一首歌曲呢,如果是我,我会怎么做,想了很久,我想只有自己比较喜欢的歌曲才会去评论的,于是想何不把这个人的喜欢的所有歌曲中的评论爬下来呢,索性扩大了范围,将这个人的所有个人歌单的歌曲的评论爬下来,然后将属于这个人的评论保存下来。

具体实践

接口分析

思路想好了,就去做,首先肯定是分析接口,结果却发现接口发生了变化,之前的接口是不进行加密的,现在的接口每次的请求都带上了 encSecKey 和 params 参数,显然是加密了,于是在 Github 上发现了这个,网易云音乐新版WebAPI分析,是 Python 实现的,重要的部分是 aesEncryptrsaEncrypt 两个加密的部分,完成这部分之后呢,后续工作就简单的多了。

实践方案

考虑到用户歌单歌曲数量比较多的情况,在爬取歌曲评论的过程中,开启多进程爬取是必要的,但又考虑到机器性能的原因,队列执行爬取功能也是必须的,不然机器可能在进程爆满的情况效率各方面实在是堪忧啊。

为了考虑以后其它新功能的开发,在此采用了 Laravel5.4 + PHP7.1 环境下的开发,需要安装php扩展bcmath, 一方面是 Laravel 开发的效率,另一方面 Laravel 在我提到的几个问题上面都有相应的解决方案,数据的爬取则是采用了 Laravelartisan 命令行,对于多进程则是采用了进程控制扩展 PCNTL,但同时这个多进程爬取的过程则是放到了 redis 驱动下的队列中,同时使用了 Supervisor 进行队列的监控,整个代码我已经开放到 Github。
clone 下来后配置完成后执行:

php artisan netease:playlist 123456

将123456替换成网易云音乐用户的 id,等待结束后,表 user_comments 就能看到用户的评论了。
具体操作可以查看 README.md 感兴趣的同学可以试着玩一玩,如果不是开发人员,可以私信我来爬取后再发给你,后续我会开发出线上的功能供大家使用。

这里我只是提供了个思路,有需要请自行爬取,有问题可以联系我。微信(w1113241948)

爬取网易云音乐某一个人的评论相关推荐

  1. python3爬取网易云音乐《我们》全部评论

    伴随着<后来的我们>的上映,这首歌的评论也是一路暴涨.如今让我们趁着这波秋风(虽然已经有点晚了),把这首歌的评论爬下来.虽然之前还打算做出词云可视化出来······然而,还是太懒了 之前爬 ...

  2. python爬音乐评论生成词云图_python爬虫+词云图,爬取网易云音乐评论

    又到了清明时节,用python爬取了网易云音乐<清明雨上>的评论,统计词频和绘制词云图,记录过程中遇到一些问题 爬取网易云音乐的评论 一开始是按照常规思路,分析网页ajax的传参情况.看到 ...

  3. python爬取评论_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

  4. python爬取网易云音乐评论并进行可视化分析

    2019独角兽企业重金招聘Python工程师标准>>> 前言 今天为大家一个爬取网易云音乐评论的Python案例,并用Python的第三方库来进行可视化分析,生成图表样式,可以清晰地 ...

  5. python网易云_用python爬虫爬取网易云音乐

    标签: 使用python爬虫爬取网易云音乐 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页版找一下你想要听的歌曲点击进去.按键盘F12打开网页调试工具,点击Ne ...

  6. python爬取网易云歌单_详解python selenium 爬取网易云音乐歌单名

    目标网站: 首先获取第一页的数据,这里关键要切换到iframe里 打印一下 获取剩下的页数,这里在点击下一页之前需要设置一个延迟,不然会报错. 结果: 一共37页,爬取完毕后关闭浏览器 完整代码: u ...

  7. python爬取网易云音乐热评_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

  8. python爬虫之爬取网易云音乐的歌曲图片和歌词

    0.目录 1.分析页面 2.获取歌曲的id 3.获取歌曲信息 4.获取歌曲图片url 5.获取歌词 6.总结 7.完整代码 1.分析页面 这一次我们来爬取网易云音乐,爬取歌单内的所有歌曲的图片和歌词, ...

  9. python爬取网易云评论最多的歌_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

最新文章

  1. 【错误记录】Visual Studio 中配置 NDK 头文件路径 ( NDK 的三个头文件路径 | 与 CPU 架构相关 asm 头文件路径选择 )
  2. 有没有插件_这 10 款插件让你的 GitHub 更好用、更有趣
  3. Spring模板对象之RedisTemplate(Spring整合jedis)
  4. 2010.8.12 CString最大可以多大?
  5. 乐观锁的一种实现方式——CAS
  6. 动态改变ListView布局
  7. Warning: Each record in table should have a unique `key` prop,or set `rowKey` to 解决方法
  8. 【CCCC】L3-022 地铁一日游 (30分),floyd+大模拟
  9. postman 返回json乱码_post json 中文编码问题
  10. 51单片机怎么显示当前时间_我电脑时间显示坏了,怎么修改不了?该怎么办?详细图文教你解决...
  11. 卡塔尔称攻击卡塔尔通讯社黑客来自断交国
  12. 网易云音乐歌单制作词云图
  13. 【Java】插入排序、希尔排序详解
  14. 如何制作mp3音频文件?分享制作mp3的简单方法
  15. 2022,博士们,又开始晒工资了
  16. 北京国家计算机四级网络工程师,关于国家计算机四级网络工程师的介绍
  17. 从上海回杭州三年,我的生活发生了翻天覆地的变化
  18. 运行rf2o_laser_odometry时出现错误
  19. Linux不完全手册(一)(转)
  20. html5 manifest 安卓,移动APP配置文件 manifest.json 讲解 (附视频)

热门文章

  1. 格式工厂视频压缩转码选择
  2. 【原生代码】Python3 实现ATR、MA、EMA、SMMA、RMA、TEMA指标的计算
  3. java 可以继承不同包的类吗_深入理解JAVA中的跨包继承
  4. 随笔:教育、兴趣 与 职业
  5. ImageJ如何测量物体的面积大小
  6. Objective-c中Category的用法
  7. 2016年浙江财经大学信工学院程序设计竞赛题解
  8. shell编程经典案例,建议收藏
  9. 学校小学计算机教室台账,通州区实验小学专用教室使用台账.doc
  10. 每个人的心里都有两头狼