PYCCS_cookies.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on 2023-09-08
  4. ---------
  5. @summary: 进入前检查浏览器 PYCCS
  6. ---------
  7. @author: Lzz
  8. """
  9. import re
  10. import execjs
  11. import requests
  12. def get_PYCCS_ck(url, headers, proxies=False):
  13. session = requests.session()
  14. session.proxies = proxies
  15. ex_js = '''
  16. function get_ck(a,b,c) {
  17. var x08c924 = parseInt(a);
  18. x08c924 = x08c924 * parseInt(b);
  19. x08c924 = x08c924 + parseInt(c);
  20. x08c924 = (x08c924 * 0x3 + 0x7);
  21. if (x08c924 < 0x7b)
  22. x08c924 = x08c924 + 0x929;
  23. if (x08c924 > 0x929)
  24. x08c924 = Math['floor'](x08c924 / 0x7b);
  25. return x08c924
  26. }
  27. '''
  28. ctx = execjs.compile(ex_js)
  29. count = 0
  30. while count < 3:
  31. try:
  32. res = session.get(url, headers=headers, timeout=60,verify=False)
  33. pm_data = "".join(re.findall('\|function\|(.*?)\|version\|',res.text,re.S)).split('|')
  34. answer = ctx.call('get_ck',pm_data[1],pm_data[3],pm_data[-1])
  35. data = {
  36. "answer": f"{answer}"
  37. }
  38. resp = session.post(url.split('?')[0], headers=headers, data=data,timeout=60,verify=False)
  39. cookies = session.cookies.get_dict()
  40. if re.findall('\|function\|(.*?)\|version\|',resp.text,re.S):
  41. print(f"请求解析异常!重试 {count} 次")
  42. count += 1
  43. else:
  44. return cookies
  45. except:
  46. print("cookies_PYCCS 获取失败!")
  47. return {}