网易云搜索歌曲,歌曲评论抓取,歌词抓取,仅供参考。

网易云音乐接口分析

网易云接口都是同一套加密代码,不同得API对应不同的请求参数,本文以搜索歌曲API为例子详细介绍加密代码,js AES 加密

搜索歌曲接口解析

1.搜索歌曲 《在一起》

2.搜索歌曲接口

2.1 第一步找到搜索歌曲接口


2.2 第二步 通过关键词全局搜索 params 和 encSecKey,找到对应的代码文件

2.3 第三步 通过断点调试定位具体加密代码位置

2.4 分析 代码块

var bVV0x = window.asrsea(JSON.stringify(i3x), bqM3x(["流泪", "强"]), bqM3x(TM7F.md), bqM3x(["爱心", "女孩", "惊恐", "大笑"]));
其中
asrsea( )未知函数
bqM3x( ) 未知函数
TM7F.md 未知参数
i3x:未知参数
2.4.1 向上分析代码 文件 13059行找到 bqM3x函数 以及TM7F
    var bqM3x = function(cyu6o) {var m3x = [];k3x.bf4j(cyu6o, function(cyt6n) {m3x.push(TM7F.emj[cyt6n])});return m3x.join("")};TM7F.md = ["色", "流感", "这边", "弱", "嘴唇", "亲", "开心", "呲牙", "憨笑", "猫", "皱眉", "幽灵", "蛋糕", "发怒", "大哭", "兔子", "星星", "钟情", "牵手", "公鸡", "爱意", "禁止", "狗", "亲亲", "叉", "礼物", "晕", "呆", "生病", "钻石", "拜", "怒", "示爱", "汗", "小鸡", "痛苦", "撇嘴", "惶恐", "口罩", "吐舌", "心碎", "生气", "可爱", "鬼脸", "跳舞", "男孩", "奸笑", "猪", "圈", "便便", "外星", "圣诞"]TM7F.emj = {"色": "00e0b","流感": "509f6","这边": "259df","弱": "8642d","嘴唇": "bc356","亲": "62901","开心": "477df","呲牙": "22677","憨笑": "ec152","猫": "b5ff6","皱眉": "8ace6","幽灵": "15bb7","蛋糕": "b7251","发怒": "52b3a","大哭": "b17a8","兔子": "76aea","星星": "8a5aa","钟情": "76d2e","牵手": "41762","公鸡": "9ec4e","爱意": "e341f","禁止": "56135","狗": "fccf6","亲亲": "95280","叉": "104e0","礼物": "312ec","晕": "bda92","呆": "557c9","生病": "38701","钻石": "14af6","拜": "c9d05","怒": "c4f7f","示爱": "0c368","汗": "5b7a4","小鸡": "6bee2","痛苦": "55932","撇嘴": "575cc","惶恐": "e10b4","口罩": "24d81","吐舌": "3cfe4","心碎": "875d3","生气": "e8204","可爱": "7b97d","鬼脸": "def52","跳舞": "741d5","男孩": "46b8e","奸笑": "289dc","猪": "6935b","圈": "3ece0","便便": "462db","外星": "0a22b","圣诞": "8e7","流泪": "01000","强": "1","爱心": "0CoJU","女孩": "m6Qyw","惊恐": "8W8ju","大笑": "d"};

看都不想看。。。。。。 三个参数都是固定的 在当前环境下 执行语句获得结果

bqM3x([“流泪”, “强”])
**010001**
bqM3x(TM7F.md)
"00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7"
bqM3x([“爱心”, “女孩”, “惊恐”, “大笑”])
"0CoJUm6Qyw8W8jud"

2.4.2 分析 i3x参数 和 asrsea函数


其中的 e,f,g参数均已知 (可以搭建后台API直接掉用 其中的CryptoJS 自行倒入)

    function a(a) {var d, e, b = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", c = "";for (d = 0; a > d; d += 1)e = Math.random() * b.length,e = Math.floor(e),c += b.charAt(e);return c}function b(a, b) {var c = CryptoJS.enc.Utf8.parse(b), d = CryptoJS.enc.Utf8.parse("0102030405060708"), e = CryptoJS.enc.Utf8.parse(a), f = CryptoJS.AES.encrypt(e, c, {iv: d,mode: CryptoJS.mode.CBC});return f.toString()}function c(a, b, c) {var d, e;return setMaxDigits(131),d = new RSAKeyPair(b,"",c),e = encryptedString(d, a)}function d(d, e, f, g) {var h = {}, i = a(16);return h.encText = b(d, g),h.encText = b(h.encText, i),h.encSecKey = c(i, e, f),h}function e(a, b, d, e) {var f = {};return f.encText = c(a + e, b, d),f}
2.4.3 python代码复写js (这里开始就是很烦的了 不想搭建后台,直接调用js代码,请求CryptoJS文件会有问题,没办法只能用python代码模拟CryptoJS执行加密)

python 有第三方库 Crypto 可执行AES 加密(有坑)
直接pip install Crypto (会报错 找不到此model)
正确下载

pip install pycryptodome

·使用第三方库 Crypto执行加密操作网上很多坑(自己的见解也很浅)下面的是成功可执行代码(注意js里面加密使用了两次,每次不同的加密参数)具体详细使用见文末github地址

# js代码中b函数的复写def crypt_js_complex_base(text,key):BS = AES.block_sizepad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS).encode('utf-8')unpad = lambda s: s[0:-s[-1]]key = bytes(key,encoding="utf-8")text = text.encode("utf-8")IV = b'0102030405060708' # 默认参数cipher = AES.new(key, mode=AES.MODE_CBC, IV=IV)# cipher2 = AES.new(key, mode=AES.MODE_CBC, IV=IV)  # 加密和解密,cipher对象只能用一次# print(text)encrypted = pad(text)# print(encrypted)encrypted = cipher.encrypt(encrypted)# print(encrypted)encrypted = base64.b64encode(encrypted).decode("utf-8")# print("第一次加密结果", encrypted)return encrypted
2.4.4 下面

网易云音乐python爬虫搜索接口,评论接口,歌词接口相关推荐

  1. python爬虫api接口,网易云音乐python爬虫api接口

    抓包能力有限,分析了一下网易云音乐的一些api接口,但是关于它很多post请求都是加了密,没有弄太明白.之前在知乎看到过一个豆瓣工程师写的教程,但是被投诉删掉了,请问有网友fork了的吗?因为我觉得他 ...

  2. 网易云音乐python爬虫(Js破解)

    网易云音乐下载python爬虫(Js破解) 最近做了一个网易云音乐下载的python爬虫,功能就是输入歌曲的名字,程序自动下载网易音乐搜索界面的第一首歌(一般都是原唱排第一位).本文很适合小白学习,写 ...

  3. python第三方插件登录网易音乐_GitHub - TomoToTomoT/NeteaseCloudMusic-Python: 网易云音乐--python Api...

    #NeteaseCloudMusic-python 网易云音乐python版Api 开发文档 获取最新评论 req_comments(music_id, page = 1, page_num = 20 ...

  4. 『Python』网易云音乐API爬虫(音乐搜索音乐播放)

    前言 永远相信美好的事情即将发生 背景 一直想做一个在线的音乐播放器,这个想法最早可以追溯到做毕设的那会,那时候做了个在线的商城系统, 里面有个在线听歌的模块,其实就是调用大佬们封装好的API进行搜索 ...

  5. 爬取网易云音乐某一个人的评论

    需求来源 上周六的时候和一朋友聊天,聊到网易云系列产品,不知不觉就说到了网易云音乐,我说了些产品细节的问题,比如说,为什么在我不开通会员的情况下,网易云音乐不允许我红心一个会员歌曲,没有购买 没有听歌 ...

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

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

  7. 网易云音乐歌手歌曲、用户评论、用户信息爬取

    这里以邓紫棋歌手为例,可以去网易云音乐看她的主页: 所有完整的代码在楼主的github:https://github.com/duchp/python-all/tree/master/web-craw ...

  8. 网易云音乐工程师,亲自揭晓评论实现技术!| 技术头条

    ​截止2019年二季度,网易云音乐用户数已经突破8亿,成为最活跃的音乐社区,位居在线音乐行业第一阵营.相信大家或多或少都使用过网易云音乐,不知道有没有人跟我一样,在云音乐听歌的时候喜欢打开评论看一看, ...

  9. 【代码】网易云音乐(周杰伦-晴天)评论的爬取

    参考爬取网易云音乐评论,典型的ajax加载,大多人是去破解js加密,有点繁琐. 爬取周杰伦-晴天这一条评论,因为数据量稍大.以后爬取整个歌手. 这是加密api的情况: import requestsd ...

最新文章

  1. 计算机社团部门职责,部门职责
  2. c#NPOI读取excel 比interop和Microsoft.Jet.OLEDB.4.0 之类 的好的多
  3. 2019年,你需要关注这些Node API和Web框架
  4. 使用iptables和ipset实现大量屏蔽恶意IP地址
  5. python实现键盘记录器
  6. VTK:八叉树可视化用法实战
  7. 人生影响最大的三位老师
  8. C/C++:程序的内存分配方式
  9. SAP Spartacus RouterState
  10. JLBH示例3 –吞吐量对延迟的影响
  11. python + selenium 搭建环境步骤
  12. 前端学习(1328):服务器基础概念
  13. window当mac用,VirtualBox虚拟机安装os系统
  14. typeof操作符返回一个字符串,表示未经计算的操作数的类型。
  15. ExtJS TreeGrid的使用方法
  16. 【转--- 数据挖掘的心得学习】
  17. 两个软硬程度一样的鸡蛋,它们在某一层摔下会碎,有个100层的建筑,要求最多用两个鸡蛋确 定鸡蛋安全下落的临界位置,给出临界位置?如果是n层楼,m个鸡蛋,请给出确定临界位置的算法
  18. ros 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。
  19. Android Selinux avc报错分析
  20. Winform像菜单一样弹出自定义内容实现示例

热门文章

  1. 讨厌google.cn怎么办?
  2. Matlab数字图像处理学习记录【1】——准备与基本原理
  3. Windows电脑快捷键
  4. 服务器修改不了分辨率,ubuntu不能设置高分辨率问题的解决方法
  5. phpadmin安装到mysql中,mysql 和phpadmin安装
  6. 记录一次数据库被黑的过程
  7. 如何同步修改git项目名称和本地项目名称
  8. linux基础——信号阻塞及未决信号
  9. python中matplotlib调整图例位置
  10. 微信的JS接口安全域名设置+tomcat服务器