一、JS加密之“盐”?
1.salt属性“盐":多用于密码学,比如我们的银行卡是六位密码,但是实际上在银行的系统里,我们输入密码后,会给原始的密码添加若干字符,形成更加难以破解的密码。这个过程我们称为”加盐“。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | """ 处理JS加密 """ import time,random ? def getSalt(): """ salt公式:"" + ((new Date).getTime() + parseInt(10 *Matn.rnandom(),10)) :return: """ salt = int(time.time()*1000) + random.randint(0,10) ? return salt ? def getMD5(): import hashlib md5zhi = hashlib.md5() ? md5zhi.update(v.encoding="uft-8") sign = md5zhi.hexdigest() ? return sign if __name__ == "__main__": getSalt() getMD5() |
二、ajax请求
1.异步请求;
2.一定会有url,请求方法,可能有数据
3.一般使用json格式
4.?案例:爬取豆瓣电影
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | """ 爬取豆瓣电影排行榜 """ from urllib import request import json url = "https://movie.douban.com/typerank?type_name=%E5%89%A7%E6%83%85&type=11&interval_id=100:90&action=" rsp = request.urlopen(url) data = rsp.read().decode() ? data = json.loads(data) print(data) |
这里报错了,是因为豆瓣有反爬虫机制,我们修改代码,把Python伪装成一个浏览器进行访问
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | """ 爬取豆瓣电影排行榜 """ from urllib import request import json url_u = "https://movie.douban.com/typerank?type_name=%E5%89%A7%E6%83%85&type=11&interval_id=100:90&action=" headers = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36" } url = request.Request(url_u,headers=headers) rsp = request.urlopen(url) data = rsp.read().decode() ? print(data) |
三、源码
Reptitle9_1_JSEncryption.py
Reptitle9_2_ajaxResponse.py
https://github.com/ruigege66/PythonReptile/blob/master/Reptitle8_1_JSEncryption.py
https://github.com/ruigege66/PythonReptile/blob/master/Reptitle9_2_ajaxResponse.py
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料