buy_poc.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import json
  2. import random
  3. import time
  4. from urllib import parse
  5. import requests
  6. from tools.utils import get_token
  7. def buy_poc(account, passwd, target_url='https://t.livepocket.jp/e/4gbm0'):
  8. """
  9. 模拟登录
  10. """
  11. # 定义请求地址
  12. login_url = "https://t.livepocket.jp/api/sessions/create?mytimestamp=" + str(int(time.time()))
  13. # 定义请求header
  14. headers = {'Content-Type': 'application/x-www-form-urlencoded;',
  15. 'Referer': 'https://t.livepocket.jp/login?acroot=header-new_p_u_nl',
  16. 'Sec-Ch-Ua': 'Chromium',
  17. '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'
  18. }
  19. # 通过字典方式定义请求body
  20. form_data = {"login": account,
  21. "password": passwd,
  22. "auto_login": "on",
  23. "login_password": f"{account}&{passwd}"
  24. }
  25. data = parse.urlencode(form_data)
  26. # 代理IP池
  27. proxy_list = [
  28. '185.199.228.220:7300',
  29. ]
  30. # 随机从ip池中选出一个ip
  31. proxy = random.choice(proxy_list)
  32. proxies = {
  33. 'http': 'http://' + proxy,
  34. 'https': 'https://' + proxy,
  35. }
  36. session = requests.session()
  37. content = session.post(url=login_url, headers=headers, data=data, proxies=None).text
  38. cookie = session.cookies
  39. response_cookie = cookie.get_dict()
  40. login_resp = json.loads(content)
  41. print(f"token: {login_resp['result']['token']}, response_cookie:{response_cookie}")
  42. # print(login_resp)
  43. token = login_resp['result']['token']
  44. reserved_session_id = random.randint(100000, 600000)
  45. ci_session = json.dumps(session.cookies.get_dict())
  46. # 跳转到抢券
  47. event_id = 0
  48. response = requests.get(target_url)
  49. if response.status_code == 200:
  50. html_string = response.content.decode('utf8')
  51. start_index = html_string.find('https://t.livepocket.jp/purchase/verify?event_id=')
  52. if start_index != -1:
  53. end_index = html_string.find("'", start_index)
  54. if end_index != -1:
  55. event_id = html_string[start_index + len('https://t.livepocket.jp/purchase/verify?event_id='):end_index]
  56. print(f'event_id: {event_id}')
  57. else:
  58. print('End index not found.')
  59. else:
  60. print('Substring not found.')
  61. else:
  62. print('Failed to fetch the page. Status code:', response.status_code)
  63. url = 'https://t.livepocket.jp/api/tickets/purchase?mytimestamp=' + str(int(time.time()))
  64. # reserved_session_id = 125846
  65. one_token = get_token()
  66. headers = {
  67. 'Content-Type': 'application/x-www-form-urlencoded',
  68. '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',
  69. 'sec-ch-ua-mobile': '?0',
  70. 'DNT': '1',
  71. 'sec-ch-ua': '"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',
  72. 'Host': 't.livepocket.jp',
  73. 'Accept': 'application/json, text/javascript, */*; q=0.01',
  74. 'X-Requested-With': 'XMLHttpRequest',
  75. 'sec-ch-ua-platform': '"macOS"',
  76. 'Origin': 'https://t.livepocket.jp',
  77. 'Sec-Fetch-Site': 'same-origin',
  78. 'Sec-Fetch-Mode': 'cors',
  79. 'Sec-Fetch-Dest': 'empty',
  80. 'Referer': f'https://t.livepocket.jp/purchase/confirm?id={event_id}&reserved_session_id={reserved_session_id}&otoken={one_token}',
  81. 'Accept-Encoding': 'gzip, deflate, br, zstd',
  82. 'Accept-Language': 'zh-CN,zh;q=0.9',
  83. 'Cookie': f'ci_session={ci_session}'
  84. }
  85. form_data = {
  86. 'utoken': f'{token}',
  87. 'onetime_token_name': 'buy_ticket',
  88. 'onetime_token_value': one_token,
  89. 'url': f'https://t.livepocket.jp/purchase/confirm?id={event_id}&reserved_session_id={reserved_session_id}',
  90. 'reserve_session_id': f'{reserved_session_id}',
  91. 'payment_method': '0',
  92. 'event_id': f'{event_id}',
  93. 'serial_codes': 'null',
  94. 'fan_club': 'null',
  95. 'payment_type': 'credit'
  96. }
  97. cookies = {'ci_session': f'{ci_session}'}
  98. response = requests.post(url, headers=headers, cookies=cookies, data=form_data)
  99. print(json.loads(response.text))
  100. if __name__ == '__main__':
  101. buy_poc("nvlu8@huatcn.com", "panyue666", 'https://t.livepocket.jp/e/glimas0504')