接着上一篇破解加密,接下来还有最后部分,没有看过上一篇文章的朋友可以先去看一下上一篇文章
本篇仅说明得到加密参数后的步骤
1.准备环境:pycharm,包:execjs, requests, csv
2. 具体步骤:
- 先介绍一下execjs这个包,这个包用来运行js代码,并获得运行结果,
这样我们先在python里面拿到加密参数:
with open('comment.js', 'r') as f:
jsgo=execjs.compile(f.read())
data='{"rid":"R_AL_3_37873787","threadId":"R_AL_3_37873787","pageNo":"1","pageSize":"20","cursor":"-1","offset":"0","orderType":"1","csrf_token":""}'
res=jsgo.call('run',data)
return res
这里的 run 就是我们在js文件里面编写的run函数,data是我们传入run函数的参数。
- 接下来,我们拿到了加密参数就可以直接发起请求了:
s=requests.Session()
s.headers=headers
resp=s.post(url=url,data=key)
这里要注意一个地方就是,记得把headers自己copy过来
然后运行代码观察结果:
不多不少,正好20条,可是,评论不只是20条呀,一定是有某个参数影响了,这时候我们把目光聚集到data:
data='{"rid":"R_AL_3_37873787","threadId":"R_AL_3_37873787","pageNo":"1","pageSize":"20","cursor":"-1","offset":"0","orderType":"1","csrf_token":""}'
很容易看出,这里有个pagesize,和pageno,就是我们的页数和一页多少条,前面的两个 id 就是 对不同的音乐,我们做一下更改(这里也是我为什么单独把data放在放在python而不是放在js里,方便调节更改嘛),然后观察是否有变化:
完美结束
- 最后关于网易云的js逆向就结束了,这是我在进入爬虫的第一个实战,整体难度是较容易的,之后网易云反爬和加密更新了我也会对这两篇文章进行更改,有任何错误的地方请指出哦