网易云音乐评论爬虫-js参数加密
2021-02-11 05:20
标签:imageview ogr 工具 ext win exec 真心 随机 数加 目标:生成网易云音乐评论请求中 params 和 encSecKey 两个参数 第一步:找到加密参数位置,直接 ctrl+F 搜 encSecKey ,找到参数生成位置 可以发现两个参数是通过 windows.aersea 这个函数加密的,它传入了四个参数,找到 windows.aersea 的定义,如下 这就是加密的函数 ,一共调用了 a,b,c,d 四个函数(a,b,c就在上面) 第二步:构造四个参数 函数 d 一共有四个参数,打个断点看一下都是什么 这里有个大坑,不知道为什么输出的四个参数都是常量,显然有问题,因为这两个参数控制翻页,但是并没有看到相关变量(现在我也不知道问题出在哪,真心求教) 一种办法不行,就换另一种,Fiddler抓包 首先把加密文件保存下来,打开,alert 一下我们要查看的变量 重新刷新网页 第一个参数就是变量, rid 为歌曲 id ,offset 很常见了,控制翻页的 第三步:分析加密函数 简单分析一下四个函数 a 函数是生成长度 16 的随机字符串,很好理解 b函数是 AES 加密,一共两次 第四步:函数实现 可以选择 python 重构(如果你喜欢的话),也可以用 js 库执行函数,这里用第二种方法(因为第一种试过坑多,实力不允许我这样做) 我电脑里装了 node ,所以会先用它调试,注意一下(直接用 execjs 这些也可以) a 函数很简单,直接复制运行就可以,b函数aes加密直接复制运行就可以, node 环境需要下载个包导入,也很简单 c函数 rsa 加密,不看不知道,rsa 的加密方法真的多如牛毛,而本文的加密方式对于一个加密小白来讲真的痛苦,说什么导入文件,那是前端,python重写,报错刷屏,想把 js 文件函数一个个 copy 过来,又一直 xx not defined ,不过功夫不负有心人,终于找到了这种 rsa 的实现源码 直接复制,大功告成(后面有源码) 这里还有一个小坑,execjs 调用函数返回结果需要转一下 str 类型,否则不会有返回结果 到此为止,网易云评论就可以正常获取了! 源码链接:https://github.com/tuchuss/web_spider/blob/master/wyy 网易云音乐评论爬虫-js参数加密 标签:imageview ogr 工具 ext win exec 真心 随机 数加 原文地址:https://www.cnblogs.com/tuchuss/p/13045433.html
(难度中等,更多的是熟练工具使用)
继续找函数 d
然后把 fiddler 里的文件替换为修改过后的文件,记得点 save
这回发现参数有了变化
c函数是 rsa 加密
result = js_data.call(‘d‘, first_params,second_params,third_params,forth_params) # 调用函数js里面的函数
print(result[‘encText‘],result[‘encSecKey‘])
data = {
‘params‘: str(result[‘encText‘]),
‘encSecKey‘:str(result[‘encSecKey‘])
}