operator_poc.py 6.0 KB

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