operator_poc.py 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. import json
  2. import random
  3. import time
  4. from urllib import parse
  5. import requests
  6. def operator_poc(account, passwd):
  7. """
  8. 模拟登录
  9. """
  10. # 定义请求地址
  11. login_url = "https://t.livepocket.jp/api/sessions/create?mytimestamp=" + str(int(time.time()))
  12. # 定义请求header
  13. headers = {'Content-Type': 'application/x-www-form-urlencoded;',
  14. 'Referer': 'https://t.livepocket.jp/login?acroot=header-new_p_u_nl',
  15. 'Sec-Ch-Ua': 'Chromium',
  16. 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36'
  17. }
  18. # 通过字典方式定义请求body
  19. form_data = {"login": account,
  20. "password": passwd,
  21. "auto_login": "on",
  22. "login_password": f"{account}&{passwd}"
  23. }
  24. data = parse.urlencode(form_data)
  25. # 代理IP池
  26. proxy_list = [
  27. '185.199.228.220:7300',
  28. ]
  29. # 随机从ip池中选出一个ip
  30. proxy = random.choice(proxy_list)
  31. # 打印出随机选择的代理ip
  32. print(proxy)
  33. proxies = {
  34. 'http': 'http://' + proxy,
  35. 'https': 'https://' + proxy,
  36. }
  37. session = requests.session()
  38. content = session.post(url=login_url, headers=headers, data=data).text
  39. cookie = session.cookies
  40. response_cookie = cookie.get_dict()
  41. login_resp = json.loads(content)
  42. print(f"token: {login_resp['result']['token']}, response_cookie:{response_cookie}")
  43. # print(login_resp)
  44. token = login_resp['result']['token']
  45. event_id = 0
  46. # 跳转到抢券
  47. target_url = 'https://t.livepocket.jp/e/4gbm0'
  48. response = requests.get(target_url)
  49. if response.status_code == 200:
  50. html_string = response.content.decode('utf8')
  51. # print(f'{html_string}')
  52. start_index = html_string.find('https://t.livepocket.jp/purchase/verify?event_id=')
  53. if start_index != -1:
  54. end_index = html_string.find("'", start_index)
  55. if end_index != -1:
  56. event_id = html_string[start_index + len('https://t.livepocket.jp/purchase/verify?event_id='):end_index]
  57. print(f'event_id: {event_id}')
  58. else:
  59. print('End index not found.')
  60. else:
  61. print('Substring not found.')
  62. else:
  63. print('Failed to fetch the page. Status code:', response.status_code)
  64. # 预购
  65. prepare_url = 'https://t.livepocket.jp/purchase?type=new'
  66. # reserved_session_id 6位随机整数
  67. buy_url = 'https://t.livepocket.jp/api/tickets/purchase?mytimestamp=' + str(int(time.time()))
  68. reserved_session_id = random.randint(100000, 600000)
  69. ci_session = json.dumps(session.cookies.get_dict())
  70. print(ci_session)
  71. common_cookies = {"ci_session": ci_session}
  72. # 通过字典方式定义请求body
  73. form_buy = {"utoken": token,
  74. "onetime_token_name": 'buy_ticket',
  75. "onetime_token_value": "GZhM2MyODg2OTYwMmRlMmM3NjNjOWYxMDExMG",
  76. "url": "https://t.livepocket.jp/purchase/confirm?id=" + str(event_id) + f"&reserved_session_id={reserved_session_id}",
  77. "reserved_session_id": reserved_session_id,
  78. "event_id": str(event_id),
  79. "payment_type": "credit",
  80. "payment_method": 0,
  81. # "enquete[q_id]": 44196,
  82. # "enquete[99063_]": 327196
  83. }
  84. data = parse.urlencode(form_buy)
  85. buy_session = requests.session()
  86. buy_content = buy_session.post(url=buy_url, headers=headers, data=data, cookies=common_cookies).text
  87. print(buy_content)
  88. response_content = json.loads(buy_content)
  89. print(f"buy_content:{response_content['errmsg']}")
  90. # 返回一个随机的请求头 headers
  91. def get_headers():
  92. user_agent_list = [
  93. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"
  94. "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
  95. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
  96. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
  97. "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
  98. "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
  99. "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
  100. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  101. "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  102. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  103. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
  104. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
  105. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  106. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  107. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  108. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
  109. "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
  110. "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
  111. ]
  112. UserAgent = random.choice(user_agent_list)
  113. headers = {'User-Agent': UserAgent}
  114. return headers
  115. if __name__ == '__main__':
  116. operator_poc("no2es@huatcn.com", "panyue666")