获取网易云搜索接口,并可下载歌曲

时间:2024-04-15 18:52:31

这里拿的接口是网易云网址端的: ccgp-shandong.gov.cn  具体代码在: https://github.com/cyrilchans/myspider/blob/main/网易云音乐/code01.py

直接先上效果图:

 

 目前就写了搜索和下载功能,其他的有兴趣可以自己捣鼓。

怎么做呢?老规矩,按f12开始分析:

 

 

 

 

 

 经过观察发现,应该是这个post链接请求: https://music.163.com/weapi/cloudsearch/get/web?csrf_token=   ,需要的参数是params 和 encSeckey,不需要看了,这两个肯定加密的,直接search搜索这两个参数:

 

 这是search和调试后的结果,可以看得出来给window.asrsea传了四个参数,这里我的做法是把jscopy到本地,然后改写一下js,把这几个值都console一下,然后使用fiddle替换js,怎么操作的过程这里就不详细介绍了,

说一下结果,结果就是有三个值是死的,只有那个i0x是活的,而且这个值千万要小心,不是它这里调试的值,用我的讲的方法打印到console,会有不一样的收获。分析完了,我们就直接找到window.asrsea函数:

 

 然后安安静静的看这段js代码,理清楚思路,以及函数之间的调用,下图是我的分析:

 

 如上如,我们已经找到加密生成的方法,这里的enctext生成方式,不要害怕,不会就百度,这个是aes加密,说来也很巧,前几天朋友刚问我aes怎么用python写,所以当时我一下子就看出来了,aes加密详情请百度,这里提供模拟js的分析方法。还有encSeckey的加密方式,也不要害怕,看不懂看不会就慢慢console打印出来,一个一个值的看,总会找到写法,下面就贴上这两个上次方式转换成python的写法:

aes加密:

 

 随机encSeckey:

 

 随机值i:

 

 写到这里,差不多就成功了,就下来合理的传参就可以了,做这种js加密一定要耐心,没了,可能要想很久,但是找到加密的地方总好过傻傻呆在,而且也比较练自己的python能力,完整代码在前文的github链接里,可能url会变,但这种加密方式网易云一时半会变不了