一、JS加密
1.有的反爬虫策略采用js对需要传输的数据进行加密处理。
2.经过加密,传输的就是密文
3.加密函数或者过程一定是在浏览器完成,也就是一定会把代码(js代码)暴露给使用者
4.通多阅读加密算法,就可以模拟出加密过程,从而达到破解。
5.举一个案例
""" 破解有道词典 """ from urllib import request,parse def youdao(key): url = "http://www.fanyi,com/translate_o?smartresult=dict&smartresult=rule" data = { "i":"girl", "from":"AUTO", "to":"AUTO", "smartresult":"dict", "client":"fanyideskweb", "salt":"1523100789519", "sign":"b8a55a436686cd89873fa46514ccedbe", "doctype":"json", "version":"2.1", "keyfrom":"fanyi.web", "action":"FY_BY_REALTIME", "typeResult":"False" } data = parse.urlencode(data).encode() headers = { "Connection": "keep - alive", "Content - Encoding":"gzip", "Content - Language": "zh - CN", "Content - Type": "text / html", "charset":"utf - 8", "Date": "Mon, 17 Feb 2020 15: 23:36 GMT", "Server":"nginx", "Transfer - Encoding": "chunked", "Vary": "Accept - Encoding" } req = request.Request(url=url,data=data,headers=headers) rsp = request.urlopen(req) html = rsp.read().decode() print(html) if __name__ == "__main__": # for i in range(10000): # print(sum) youdao(45)
二、源码
Reptitle8_1_JSEncryption.py
https://github.com/ruigege66/PythonReptile/blob/master/Reptitle8_1_JSEncryption.py
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料