网易云音乐评论抓取(js逆向)
2021/6/11 18:27:22
本文主要是介绍网易云音乐评论抓取(js逆向),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
网易云音乐评论抓取(js逆向)
本文通过分析网易云音乐的js加密,通过构造相关的参数,获取网易云音乐评论。
所用语言和相关模块
- python3.6
- requests`
网站特点分析
通过分析网站可知:
评论获取的url:https://music.163.com/weapi/comment/resource/comments/get?csrf_token=
评论获取的方法:post
评论获取的参数:params、encSecKey
且参数为加密参数
实现过程
由上面的分析过程可以得知,实现过程分为3部分完成:
1)找出各参数的js代码
ctrl+shift+f掉出全局搜索,输入参数“encSecKey”,找出各参数形成的位置
2)分析各参数的加密逻辑
在相关的参数加密获得处打上断点,
由图可知,两个参数的值是由一个函数获取得到,其主要的参数为d,e,f,g
d:通过分析参数的格式可知,rid、threadId为歌曲id,pageNo评论页数, pageSize为页的条数,cursor为该页获取的评论的最小发布时间戳,orderType为排序规则
e为固定值010001
f为固定值00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7
g为固定值0CoJUm6Qyw8W8jud
在函数中,有个比较重要的参数i,其为随机的16位字符串,每次请求可取固定的值,取其值为3XDOKTz8borjR3H3
encSecKey的值的加密代码为h.encSecKey = c(i, e, f)
,由于i、e、f可为固定的值,故encSecKey取值为i=3XDOKTz8borjR3H3的加密得到1206a2796de825fceaa6d57bbfaf901ce9c13c9f7364fb721aa1260355020a9e7e753744223f165be7a1b4edda2dbac2edda6add418de29793c177c1578611e606f9a35e3d8cb44da198072531528dc551416a6242d9330d410b066f410f6c9fab866cc6b2cc73131f62669042086f3666e3336bc5a2e0acb38ddef443a615da
params的为aes二次加密得到
故此,只需实现aes加密,模拟获取相关的评论
3)python实现相关的加密代码
params参数获取:
def get_params(): """ 获取params参数的值 :return: """ iv = "0102030405060708" i = '3XDOKTz8borjR3H3' # 获取密文 encText = AES_encrypt(d, g, iv) encText = AES_encrypt(encText, i, iv) return encText
aes加密:
def AES_encrypt(text, key, iv): """ 进行aes加密 :param text:加密的明文 :param key:密钥 :param iv: :return: """ pad = 16 - len(text) % 16 text = text + pad * chr(pad) encryptor = AES.new(key.encode("utf-8"), AES.MODE_CBC, iv.encode("utf-8")) encrypt_text = encryptor.encrypt(text.encode("utf-8")) encrypt_text = base64.b64encode(encrypt_text) return encrypt_text.decode('utf8')
全部代码
github链接
这篇关于网易云音乐评论抓取(js逆向)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Vue新手入门教程:从零开始学习Vue框架
- 2024-11-23如何集成Ant Design Vue的图标
- 2024-11-23如何集成Ant Design Vue图标
- 2024-11-23使用vue CLI快速搭建Vue项目教程
- 2024-11-23Vue CLI多环境配置简单教程
- 2024-11-23Vue3入门教程:轻松搭建你的第一个Vue3应用
- 2024-11-23Vue3+Vite快速上手指南
- 2024-11-23Vue3阿里系UI组件入门指南
- 2024-11-23Vue3的阿里系UI组件入门指南
- 2024-11-23Vue3公共组件入门教程