当前位置:   article > 正文

python爬虫-AES.CBS加密案例(mmz批量爬取)

python爬虫-AES.CBS加密案例(mmz批量爬取)

下载mmz本页数据

批量下载请看主页!!!

代码:

  1. import requests
  2. from Crypto.Cipher import AES
  3. import base64
  4. cookies = {
  5. 'PHPSESSID': '48nu182kdlsmgfo2g7hl6eufsa',
  6. 'Hm_lvt_6cd598ca665714ffcd8aca3aafc5e0dc': '1710568549',
  7. 'SECKEY_ABVK': 'FUnr+pnCS/p1Ou/WiS6a82jLBmKcwlQfvALD/bEpSYS0EV42eXkFNYpCmcekNiiKvyrlcEHfDw6QLw7GSqcv/w%3D%3D',
  8. 'Hm_lpvt_6cd598ca665714ffcd8aca3aafc5e0dc': '1710568575',
  9. 'BMAP_SECKEY': 'FUnr-pnCS_p1Ou_WiS6a82jLBmKcwlQfvALD_bEpSYRjgInAaoK-vELl57QFAxX-y1kv64ZfrWIegR6xAqZk5YPrHMNgpor4__VOFQ2YBt9ZLJyD0Ru3kQ8TLNDX9tgT2rE6la_DNO7NooPoKY8lg-7nkrw7RqULcxikq6qpjt72ToZ7LhtjeWs5kU5TcRy2ruVzAKFKBpjmyUlPmKeBwJM_HQkgSUF_-wJjonbLE8U',
  10. }
  11. headers = {
  12. 'Accept': '*/*',
  13. 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
  14. 'Connection': 'keep-alive',
  15. 'Content-Type': 'application/json; charset=UTF-8',
  16. # 'Cookie': 'PHPSESSID=48nu182kdlsmgfo2g7hl6eufsa; Hm_lvt_6cd598ca665714ffcd8aca3aafc5e0dc=1710568549; SECKEY_ABVK=FUnr+pnCS/p1Ou/WiS6a82jLBmKcwlQfvALD/bEpSYS0EV42eXkFNYpCmcekNiiKvyrlcEHfDw6QLw7GSqcv/w%3D%3D; Hm_lpvt_6cd598ca665714ffcd8aca3aafc5e0dc=1710568575; BMAP_SECKEY=FUnr-pnCS_p1Ou_WiS6a82jLBmKcwlQfvALD_bEpSYRjgInAaoK-vELl57QFAxX-y1kv64ZfrWIegR6xAqZk5YPrHMNgpor4__VOFQ2YBt9ZLJyD0Ru3kQ8TLNDX9tgT2rE6la_DNO7NooPoKY8lg-7nkrw7RqULcxikq6qpjt72ToZ7LhtjeWs5kU5TcRy2ruVzAKFKBpjmyUlPmKeBwJM_HQkgSUF_-wJjonbLE8U',
  17. 'Origin': 'https://www.maomaozu.com',
  18. 'Referer': 'https://www.maomaozu.com/',
  19. 'Sec-Fetch-Dest': 'empty',
  20. 'Sec-Fetch-Mode': 'cors',
  21. 'Sec-Fetch-Site': 'same-origin',
  22. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0',
  23. 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Microsoft Edge";v="122"',
  24. 'sec-ch-ua-mobile': '?0',
  25. 'sec-ch-ua-platform': '"Windows"',
  26. }
  27. # 参数加密
  28. data = 'i1gpLEJyKvluv3sQVGr/h24MVjun9ZmA85MeQbGkMN/IIv+h8/9XooiKQN3pMc7C'
  29. response = requests.post('https://www.maomaozu.com/index/build.json', cookies=cookies, headers=headers, data=data)
  30. res = response.text
  31. # print(response.text)
  32. # 解密 b64
  33. # print(base64.b64decode(res))
  34. b64decode = base64.b64decode(res)
  35. # 解析mmz网站js拿到kv,服务器向浏览器传送数据的解密kv
  36. key = '0a1fea31626b3b55'.encode()
  37. vi = key
  38. cry = AES.new(key, AES.MODE_CBC, vi)
  39. # print(cry.decrypt(b64decode).decode())
  40. mmz_text = cry.decrypt(b64decode).decode()
  41. print(mmz_text)

代码思维流程:

1、按照基础爬虫的思路,拿到目标网址进行模仿请求服务器并拿到数据

2、找到对应网页链接时,负载(请求)、响应都做了加密处理

3、先对响应的加密数据做解密处理,就可以获取到本页的数据

1)浏览器和服务器之前的传输是通过一系列的js代码进行的所以要在源码中找到解密的kv

2)搜索方法:搜索key、搜索路径、搜索"方法(函数)"、拦截器

3)使用搜索"方法(函数)"

4)在搜索到的位置上打断点,再刷新浏览器看停在那个位置

5)逐步分析,找到解密的方法即可找到key和iv

4、找到后即可完成解密操作获取到数据

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号