Commit a4284bac authored by wang's avatar wang

11

parent 3783ed29
import hmac
import hashlib
import base64
import ctypes
import hashlib
import hmac
import json
import random
import time
import traceback
import uuid
from urllib.parse import quote
import execjs
import requests
......@@ -62,9 +61,9 @@ class PxBypass():
prox = 'http://b6b6b6b6-zone-custom-region-us-session-130oj36t4-sessTime-5:bpoMDFG5oD@na.ipidea.io:2333'
prox = 'http://user-uni001-region-us-sessid-1111-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
# prox = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000'
# prox = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{random.randint(10000, 13500)}'
# prox = 'http://127.0.0.1:7890'
prox = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000'
prox = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{random.randint(10000, 13500)}'
prox = 'http://127.0.0.1:8890'
session.proxies = {
'http': prox,
'https': prox,
......@@ -103,41 +102,30 @@ class PxBypass():
# if self.session.cookies.get_dict().get('_px2', None) == None:
self._step_3()
self.inc()
# time.sleep(2)
time.sleep(2)
self.__token()
def _init(self):
# resp = requests.post('http://127.0.0.1:59001/akamai/gen', json={
# self.prox = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{random.randint(10000, 13500)}'
resp = requests.post('http://52.52.23.116/akamai/gen', json={
'type':"NK",
# 'proxy': 'http://127.0.0.1:7890'
'proxy': self.prox
})
if '~0~' not in resp.json()['cookies']['_abck']:
raise Exception("abck失败")
self.session.cookies.update(
resp.json()['cookies']
)
# res = self.session.get(
# self.target_url,
# headers={
# "authority": "www.spirit.com",
# "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
# "accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
# "cache-control": "no-cache",
# "pragma": "no-cache",
# "sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"115\", \"Chromium\";v=\"115\"",
# "sec-ch-ua-mobile": "?0",
# "sec-ch-ua-platform": "\"macOS\"",
# "sec-fetch-dest": "document",
# "sec-fetch-mode": "navigate",
# "sec-fetch-site": "none",
# "sec-fetch-user": "?1",
# "upgrade-insecure-requests": "1",
# "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
# }, allow_redirects=True)
# self.log.info(f"初始化请求 res {res.status_code}")
res = self.session.get(
self.target_url,
headers={
"authority": "www.spirit.com",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
"cache-control": "no-cache",
"pragma": "no-cache",
"sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"115\", \"Chromium\";v=\"115\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"macOS\"",
"sec-fetch-dest": "document",
"sec-fetch-mode": "navigate",
"sec-fetch-site": "none",
"sec-fetch-user": "?1",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
}, allow_redirects=True)
self.log.info(f"初始化请求 res {res.status_code}")
self.params = {}
for k, v in self.session.cookies.items():
self.params[k] = v
......@@ -291,14 +279,64 @@ class PxBypass():
for i in range(0, len(r), 2):
a2 += r[i]
return a2
def __token(self):
cks = []
for k, v in self.session.cookies.get_dict().items():
cks.append(f'{k}={v}')
# resp = requests.post('http://127.0.0.1:59001/akamai/gen', json={
self.prox = f'http://user-uni001-region-us-sessid-{random.randint(1000, 5000)}-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
self.prox = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{random.randint(10000, 13500)}'
# self.prox = 'http://127.0.0.1:8890'
resp = requests.post('http://52.52.23.116/akamai/gen', json={
# resp = requests.post('http://127.0.0.1:59001/akamai/gen', json={
'type': "NK2",
# 'proxy': 'http://127.0.0.1:7890'
'proxy': self.prox,
'cookie': '; '.join(cks)
})
if '~0~' not in resp.json()['cookies']['_abck']:
raise Exception("abck失败")
print(resp.json()['cookies'])
self.session.cookies.update(
resp.json()['cookies']
)
url = "https://www.spirit.com/api/prod-token/api/v1/token"
data = {
"applicationName": "dotRezWeb"
}
data = json.dumps(data, separators=(',', ':'))
response = self.session.post(url, headers={
# response = self.session.post(url, headers={
# "authority": "www.spirit.com",
# "accept": "application/json, text/plain, */*",
# "accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
# "cache-control": "no-cache",
# "content-type": "application/json",
# "ocp-apim-subscription-key": "dc6844776fe84b1c8b68affe7deb7916",
# "origin": "https://www.spirit.com",
# "pragma": "no-cache",
# "referer": "https://www.spirit.com/",
# "sec-ch-ua": "\"Google Chrome\";v=\"117\", \"Not;A=Brand\";v=\"8\", \"Chromium\";v=\"117\"",
# "sec-ch-ua-mobile": "?0",
# "sec-ch-ua-platform": "\"macOS\"",
# "sec-fetch-dest": "empty",
# "sec-fetch-mode": "cors",
# "sec-fetch-site": "same-origin",
# "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
# "x-dtpc": "8$216560782_634h19vKIAKIMFGTUTKRWPPLDKCSORJAIECKGLH-0e0"
# }, data=data, proxy={
# 'http':'http://127.0.0.1:7890',
# 'https':'http://127.0.0.1:7890',
# # 'http': self.prox,
# # 'https': self.prox,
# }, insecure_skip_verify=True)
cks = []
for k, v in self.session.cookies.get_dict().items():
cks.append(f'{k}={v}')
response = requests.post('http://52.52.23.116/tls/forward',
json=dict(url=url, headers={
"authority": "www.spirit.com",
"accept": "application/json, text/plain, */*",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
......@@ -315,18 +353,16 @@ class PxBypass():
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
"x-dtpc": "8$216560782_634h19vKIAKIMFGTUTKRWPPLDKCSORJAIECKGLH-0e0"
}, data=data, proxy={
# 'http':'http://127.0.0.1:8890',
# 'https':'http://127.0.0.1:8890',
'http': self.prox,
'https': self.prox,
}, insecure_skip_verify=True)
print(response.text)
"x-dtpc": "8$216560782_634h19vKIAKIMFGTUTKRWPPLDKCSORJAIECKGLH-0e0",
"cookie": '; '.join(cks)
}, method="POST", data=data, proxy=self.prox, debug=True
# ,allow_redirects=True
))
response = response.json()
print(response)
print(response.status_code)
token = response.json()['data']['token']
print(response['status_code'])
data = json.loads(response['text'])
token = data['data']['token']
h = {
"authority": "www.spirit.com",
......@@ -349,9 +385,9 @@ class PxBypass():
'Authorization': f'Bearer {token}'
}
cks = []
for k,v in self.session.cookies.get_dict().items():
for k, v in self.session.cookies.get_dict().items():
cks.append(f'{k}={v}')
h['cookies'] = '; '.join(cks)
h['cookie'] = '; '.join(cks)
uri = 'http://ymx-lcc.unififi.com/header/add'
# uri = 'http://52.52.23.116/header/add'
# proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
......
import random
import requests
import tls_client
session = tls_client.Session(client_identifier='chrome_117')
import json
h = {"authority": "www.spirit.com", "x-dtpc": "8$216560782_634h19vKIAKIMFGTUTKRWPPLDKCSORJAIECKGLH-0e0", "accept": "application/json, text/plain, */*", "cache-control": "no-cache", "content-type": "application/json", "origin": "https://www.spirit.com", "sec-ch-ua-mobile": "?0", "sec-fetch-dest": "empty", "sec-fetch-site": "same-origin", "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkb3RSZXpXZWIiLCJqdGkiOiI1ZDVjMzMwYi0zY2Y5LTk2OGYtYzczMC00YWQzMjQxOGQwNWEiLCJpc3MiOiJkb3RSRVogQVBJIn0.HpPtd8CGO_q68CzE9ZWoWE90DBHijl-oNij-LyWlo4I", "cookie": "userCountryLocation=AR; userGeolocation=-60.05, -26.93; _pxhd=15b0ff658780101e092b98c6aceae11673b227ca11674ff492f70664c1ec63bf:d393e8ff-839b-11ee-a10d-8a5d926cbf1e; _abck=59FF424FECF1548CE4CA3273E2AC3F7F~-1~YAAQJGdNaLYSprOLAQAAUVZg0gq/wtHFjxoACRuTBoFMhvKmaDaRKxymtaN/B0mS6LPXzXzqK3iEzb+eyrCqEkr2JBjBbJptIBRuSN7x9OPpj0LSPlAKCSUuSZp0nYODhXImF5dBYkZfU865128iwvkS+AFD+FmiiXI256Kg4bJUhUcrwcbRqdNnhZHBZyTfnJ8eX/K10NuT2yVPcKudgCbqLXG+xR5RR6s7UIC5X7cy09KtGd7yjuRQIZBwqu1YgOmHNwoRLwtuMydvj1mOrTqZIHthyvf4O2jOSMyUBx+870DuPb5bRR/wW3WfqtXPuRU26CpuqXNuZD65RjBdIy42Yq6qbNFDKcrWJCdwa4rZnsC10A3Lfxg7IoE/QreMPJ1+D5426IaN13A1DJJRvXwChwDDDwiYJw==~0~-1~1700045170; ak_bmsc=16F872B284D7D742D9B440904D6EA8A4~000000000000000000000000000000~YAAQXv4ZuFAAG66LAQAAvtpf0hU2r0zOeWQG5RyW0r/pzvM4bnWCM8hssZ5GqvIio/0B7JLo1SP23y0gDrS+6pYwQx8jKwbMA85JsRz2+mDO3wbMDo0W5Efcy2HAhYyUrdgaVs9dfTJ3nknuc/3ncQ1J1gKKYCVPS+bIc/ycddble1Qaazt+W3gmQvoUP2doOdGvB2k96pk6ckz++AeCFdYksw8VifpCxZcKpqu4QH3Rr/8t6E+OCOJFHi5YniuAkTRQiywd/CUMRMfDRGrp3mAgPBNPR8GKEnmRkrC3D4w4fASAA/BwTBzVEcJ3WZQDTgtW3XvOUCjwj+9B+s//Kv0HwZaW6jphGkzLR3zobtkfaWuXBOWF3KdeqWYoJByhztwsn6qwtmqRJ7ZrB5uY8ElEUDmIGDEXJgWOd5A6N8+h; bm_sz=41D6A48AB3A675E3129F11F8629811A1~YAAQXv4ZuFIAG66LAQAAv9pf0hUt8DdIKXHR/qb2oB4CYFt3B7Cf5UygYX/z1yirMll3l8nyheKWMaQHSMZGtLN5mmkFPtCl16BB3WoQjaGmxkZxZ/VW9xZ4FPRL9BRu1IYCQoqFuaM1UpoDuuhOwpEVAu1MiWpypNEEVG9Dwn6OIlIs2rBGR6Nd4ky+QjB6gZG4Zy0xICm76xV/kdbGXAPJL3J19+/zwSkRX6vm2Qb9jS9edWNuo2TV3qn7WPNObNFrsKPamGfI9WsQ6CyY8faXjKiP3l/cyl3EDnQIa2RNbK4=~3551800~3617861; bm_mi=64A697FE32B0A492C0FB99C37CEF7C15~YAAQXv4ZuOEAG66LAQAAfCJg0hVmmg3DZLj/sgYb7PfTXLRMbqCBYyaNpcWuG+jiOnmUHcCGo7KuvcBHv0gspebyECw5g45XgA93Zbf3RqG1KM2duItD3BAxIt0uips+6TkKIKT5ocejTu8BwAHk596WrKDUfA8sWIUjBhdgdiK/7NhmPhhqHTfliDC9/3Iec0pxzDCBlpJqQxpyBGASJcVO2bDQvpUesHkfCBDo983wkvMDopzE9fYOPTG4GuiL2F7zg9hpeG5G1bb08bc/R9bdOHmKdaEBe4pGhyzmq4TeDQAc2IcYlFG9wWC7OFJBp1Z0+Nt3~1; bm_sv=7441A40BE0D728C8E6CF542453E15853~YAAQXv4ZuCIBG66LAQAA1EJg0hU+T+fSZWalU5WEg8eI7jsbaeHmkUuu+rBtUZ6Swo09x+IkRJD9fiTH6jkQAmWcZiwHIPu3UNWzXmdcAKRLnzHAUHaAB8/zGeRfG7eLeIN10VpaHSHMYQg30ycMV9vkC7oTjGnNfeBxk17d+Qw2vb0i6llEtuVUnKYOlsiznYyjfW2wYSWL2KyWiEsiS/ygNTiVnEuOXISwJDbO0OaZ0u4gM8WfxWrj7B/Tt87r~1; _pxde=565ab764e281018491e165254b15ec4fa4b0dfe3fe89b301a514b42fbcfbce0e:eyJ0aW1lc3RhbXAiOjE3MDAwNDE2MDc0MDB9; _pxvid=d393e8ff-839b-11ee-a10d-8a5d926cbf1e; pxcts=e3e68da1-839b-11ee-948d-0a2043fa075e; _px2=eyJ1IjoiZjFjZDM2MDctM2NkMi00ZGRkLTg1MTQtOGMwZjNjYWYxYzFmIiwidiI6ImQzOTNlOGZmLTgzOWItMTFlZS1hMTBkLThhNWQ5MjZjYmYxZSIsInQiOjE3MDAwNDE5MDczOTksImgiOiJjOWYzOGM4M2U4Nzk0NzI1ZTBkOTkwMzBmYmUxMDg0ODkyOGUwNTQ1MTdhOWRjM2FjOTNhMDcxMjJhNGNkZDIyIn0=", "sec-ch-ua": "\"Google Chrome\";v=\"117\", \"Not;A=Brand\";v=\"8\", \"Chromium\";v=\"117\"", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36", "accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6", "ocp-apim-subscription-key": "dc6844776fe84b1c8b68affe7deb7916", "pragma": "no-cache", "referer": "https://www.spirit.com/", "sec-ch-ua-platform": "\"macOS\"", "sec-fetch-mode": "cors"}
url = "https://www.spirit.com/api/prod-availability/api/availability/search"
data = {
"includeWifiAvailability": True,
"criteria": [
{
"stations": {
"originStationCodes": [
"SJC"
],
"destinationStationCodes": [
"BNA"
],
"searchDestinationMacs": False,
"searchOriginMacs": False
},
"dates": {
"beginDate": "2023-11-17",
"endDate": "2023-11-17"
},
"filters": {
"filter": "Default"
}
}
],
"passengers": {
"types": [
{
"type": "ADT",
"count": 1
}
]
},
"codes": {
"currency": "USD"
},
"fareFilters": {
"loyalty": "MonetaryOnly",
"types": [],
"classControl": 1
},
"taxesAndFees": "TaxesAndFees",
"originalJourneyKeys": [],
"originalBookingRecordLocator": None,
"infantCount": 0,
"birthDates": []
}
data = json.dumps(data, separators=(',', ':'))
prox = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{random.randint(10000, 13500)}'
prox = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:10395'
prox = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:10855'
prox = 'http://user-uni001-region-us-sessid-1058-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
response = requests.post('http://52.52.23.116/tls/forward',
json=dict(url=url,method="POST", data=data, proxy=prox, headers=h, debug=True)
)
# response = session.post(url, headers=h, data=data, proxy={
# # 'http':'http://127.0.0.1:7890',
# # 'https':'http://127.0.0.1:7890',
# 'http': prox,
# 'https':prox,
# })
print(response.text)
print(response)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment