Commit ae8eaa96 authored by wang's avatar wang

11

parent a4284bac
......@@ -272,7 +272,7 @@ function i(n) {
u = o[n];
} else {
for (var c = a(n), u = "", f = 0; f < c["length"]; ++f) {
var s = "xfUHFOK"["charCodeAt"](f % 7);
var s = "UX7j1xE"["charCodeAt"](f % 7);
u += String["fromCharCode"](s ^ c["charCodeAt"](f));
}
o[n] = u;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -8,6 +8,7 @@ const generator = require("@babel/generator").default;
//js混淆代码读取
process.argv.length > 2 ? encodeFile = process.argv[2] : encodeFile = "./main.js"; //默认的js文件
process.argv.length > 2 ? encodeFile = process.argv[2] : encodeFile = "./decodeResult22.js"; //默认的js文件
process.argv.length > 3 ? decodeFile = process.argv[3] : decodeFile = encodeFile.replace(".js", "") + "_ok.js";
//将源代码解析为AST
......
......@@ -63,16 +63,34 @@ class PxBypass():
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:8890'
# prox = 'http://127.0.0.1:8890'
session.proxies = {
'http': prox,
'https': prox,
}
tag = "v8.7.2"
ft = "317"
appId = "PXVb73hTEg"
def __init__(self, target_url):
self.pxHeaders = {
"authority": "collector-pxvb73hteg.px-cloud.net",
"accept": "*/*",
"accept-language": "en-US,en;q=0.9",
"cache-control": "no-cache",
"content-type": "application/x-www-form-urlencoded",
"origin": "https://www.flyfrontier.com",
"pragma": "no-cache",
"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": "cross-site",
"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"
}
self.pxUrl = f"https://collector-{self.appId}.px-cloud.net/api/v2/collector"
self.target_url = target_url
self.log = logger.bind(module_name='px')
......@@ -81,28 +99,54 @@ class PxBypass():
self.rsc += 1
self.log.info(f'seq: {self.seq} rsc:{self.rsc}')
def do_collector(self, data):
if isinstance(data, list):
data_str = json.dumps(data, separators=(',', ':'))
else:
data_str = data
self.log.info(f'data_str {data_str}')
payload = ctx.call('encodePayload', data_str, self.uuid, self.ts)
self.log.info(f'payload {payload}')
pc = self._gen_pc(data_str, f'{self.uuid}:{self.tag}:{self.ft}')
body = {
"payload": payload,
"appId": self.appId,
"tag": self.tag,
"uuid": self.uuid,
"ft": self.ft,
"seq": self.seq,
"en": "NTA",
"pc": pc,
"rsc": self.rsc
}
body = self.update_sid_vid(body)
response = self.session.post(self.pxUrl, headers=self.pxHeaders, data=body)
self.log.info(f'collector1 {response.text}')
resp = response.json()
self.parse_resp(resp)
self.inc()
def run(self):
self._init()
self.seq = 0
self.rsc = 1
self._step_1()
self.inc()
self.seq += 1
self._step_11()
self.inc()
# time.sleep(1.5)
self._step_2(True)
self.inc()
# time.sleep(2)
# self._step_2(False)
# time.sleep(2)
self._step_2(False)
time.sleep(2)
# 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):
......@@ -110,12 +154,12 @@ class PxBypass():
res = self.session.get(
self.target_url,
headers={
"authority": "www.spirit.com",
"authority": "booking.flyfrontier.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",
"accept-language": "en-US,en;q=0.9",
"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": "\"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": "document",
......@@ -123,7 +167,7 @@ class PxBypass():
"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"
"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 = {}
......@@ -206,49 +250,7 @@ class PxBypass():
"PX11496": _uuid, "PX12564": None, "PX12565": -1,
"PX11379": True
}}]
data_str = json.dumps(data, separators=(',', ':'))
self.log.info(f'data_str {data_str}')
payload = ctx.call('encodePayload', data_str, _uuid, '')
self.log.info(f'payload {payload}')
pc = self._gen_pc(data_str, f'{_uuid}:{self.tag}:{self.ft}')
print(pc)
body = {
"payload": payload,
"appId": "PXkp4CLSb5",
"tag": self.tag,
"uuid": self.uuid,
"ft": self.ft,
"seq": self.seq,
"en": "NTA",
"pc": pc,
"rsc": self.rsc
}
body = self.update_sid_vid(body)
print(body)
url = "https://collector-pxkp4clsb5.px-cloud.net/api/v2/collector"
headers = {
"authority": "collector-pxkp4clsb5.px-cloud.net",
"accept": "*/*",
"accept-language": "en-US,en;q=0.9",
"cache-control": "no-cache",
"content-type": "application/x-www-form-urlencoded",
"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": "cross-site",
"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"
}
response = self.session.post(url, headers=headers, data=body)
self.log.info(f'collector1 {response.text}')
resp = response.json()
self.parse_resp(resp)
self.do_collector(data)
def encrypt(self, data, param):
n = bytearray()
......@@ -261,7 +263,8 @@ class PxBypass():
return n
def _gen_pc(self, t, e):
# self.log.info(f'genpc {data_str} {param}')
self.log.info(f'genpc t: {t}')
self.log.info(f'genpc e: {e}')
# ctx = execjs.compile(jsCode)
h = hmac.new(e.encode(), t.encode(), hashlib.md5)
t = h.hexdigest()
......@@ -281,129 +284,41 @@ class PxBypass():
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)}'
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={
# "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}')
print('; '.join(cks))
url = 'https://booking.flyfrontier.com/Flight/InternalSelect?o1=DEN&d1=LAS&dd1=2023-11-30&ADT=1&umnr=false&mon=true'
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",
"authority": "booking.flyfrontier.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",
"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",
"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",
"x-dtpc": "8$216560782_634h19vKIAKIMFGTUTKRWPPLDKCSORJAIECKGLH-0e0",
"cookie": '; '.join(cks)
}, method="POST", data=data, proxy=self.prox, debug=True
}, method="GET", proxy=self.prox, debug=True
# ,allow_redirects=True
))
response = response.json()
print(response)
print(response['text'])
print(response['status_code'])
data = json.loads(response['text'])
token = data['data']['token']
h = {
"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",
'Authorization': f'Bearer {token}'
}
cks = []
for k, v in self.session.cookies.get_dict().items():
cks.append(f'{k}={v}')
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))}'
# proxy = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:10042'
# proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
brush_name = 'py1'
r = requests.post(uri, json={
'brush_fromto': 'LAS-BOS',
'brush_fromdate': '2023-05-26',
'brush_header': h,
'brush_proxy': self.prox,
'brush_mode': 'shopping',
'brush_name': brush_name,
'brush_type': 'cookieNK',
})
print(r.text)
def _step_2(self, nn):
......@@ -412,52 +327,7 @@ class PxBypass():
data_str = ctxStep2.call('genPayload2', self.target_url, self.sid, self.vid, self.ts, self.num1, self.num2,
self.str1, self.uuid,
self.startTs, self.startTs2, nn)
self.log.info(f'data_str2 {data_str}')
payload = ctx.call('encodePayload', data_str, self.uuid, self.ts)
self.log.info(f'payload {payload}')
pc = self._gen_pc(data_str, f'{self.uuid}:{self.tag}:{self.ft}')
body = {
"payload": payload,
"appId": "PXkp4CLSb5",
"tag": self.tag,
"uuid": self.uuid,
"ft": self.ft,
"seq": self.seq,
"en": "NTA",
"cs": self.cs,
"pc": pc,
# "sid": self.sid,
# "vid": self.vid,
# "cts": self.cts,
"rsc": self.rsc
}
body = self.update_sid_vid(body)
url = "https://collector-pxkp4clsb5.px-cloud.net/api/v2/collector"
headers = {
"authority": "collector-PXkp4CLSb5.px-cloud.net",
"accept": "*/*",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
"cache-control": "no-cache",
"content-type": "application/x-www-form-urlencoded",
"origin": self.target_url,
"pragma": "no-cache",
"referer": self.target_url,
"sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"115\", \"Chromium\";v=\"115\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "cross-site",
"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"
}
response = self.session.post(url, headers=headers, data=body)
self.log.info(f'collector2 {response.text}')
resp = response.json()
m = {}
self.parse_resp(resp)
# self.m = m
self.do_collector(data_str)
def _decode_resp(self):
a = int(self.tag.replace('v', '').replace('.', ''))
......@@ -465,51 +335,7 @@ class PxBypass():
def _step_11(self):
data = [{"t": "PX12167", "d": {"PX11648": True, "PX11379": True, "PX11645": self.target_url}}]
data_str = json.dumps(data, separators=(',', ':'))
self.log.info(f'data_str {data_str}')
payload = ctx.call('encodePayload', data_str, self.uuid, self.ts)
self.log.info(f'payload {payload}')
pc = self._gen_pc(data_str, f'{self.uuid}:{self.tag}:{self.ft}')
print(pc)
body = {
"payload": payload,
"appId": "PXkp4CLSb5",
"tag": self.tag,
"uuid": self.uuid,
"ft": self.ft,
"seq": self.seq,
"en": "NTA",
"pc": pc,
# "pxhd": self.params['_pxhd'],
"rsc": self.rsc
}
body = self.update_sid_vid(body)
print(body)
url = "https://collector-pxkp4clsb5.px-cloud.net/api/v2/collector"
headers = {
"authority": "collector-PXkp4CLSb5.px-cloud.net",
"accept": "*/*",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
"cache-control": "no-cache",
"content-type": "application/x-www-form-urlencoded",
"origin": self.target_url,
"pragma": "no-cache",
"referer": self.target_url,
"sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"115\", \"Chromium\";v=\"115\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "cross-site",
"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"
}
response = self.session.post(url, headers=headers, data=body)
self.log.info(f'collector1 {response.text}')
resp = response.json()
m = {}
self.parse_resp(resp)
self.log.info(f'cookies1 {self.session.cookies.keys()}')
self.m = m
self.do_collector(data)
def update_sid_vid(self, data: dict):
if self.session.cookies.get_dict().get('_pxhd', None) != None:
......@@ -532,56 +358,12 @@ class PxBypass():
def _step_3(self):
self.log.info(self.uuid)
# sid, vid,ts, num1 ,num2,str1, uuid
data_str = ctxStep2.call('genPayload3', self.target_url, self.sid, self.vid, self.ts, self.num1, self.num2,
self.str1, self.uuid)
self.log.info(f'data_str3 {data_str}')
payload = ctx.call('encodePayload', data_str, self.uuid, self.ts)
self.log.info(f'payload3 {payload}')
pc = self._gen_pc(data_str, f'{self.uuid}:{self.tag}:{self.ft}')
body = {
"payload": payload,
"appId": "PXkp4CLSb5",
"tag": self.tag,
"uuid": self.uuid,
"ft": self.ft,
"seq": self.seq,
"en": "NTA",
"cs": self.cs,
"pc": pc,
# "sid": self.sid,
# "vid": self.vid,
# "cts": self.cts,
"rsc": self.rsc
}
body = self.update_sid_vid(body)
print(json.dumps(body, separators=(',', ':')))
url = "https://collector-pxkp4clsb5.px-cloud.net/api/v2/collector"
headers = {
"authority": "collector-PXkp4CLSb5.px-cloud.net",
"accept": "*/*",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
"cache-control": "no-cache",
"content-type": "application/x-www-form-urlencoded",
"origin": self.target_url,
"pragma": "no-cache",
"referer": self.target_url,
"sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"115\", \"Chromium\";v=\"115\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "cross-site",
"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"
}
self.log.info(f'data3 {body}')
response = self.session.post(url, headers=headers, data=body)
self.log.info(f'collector3 {response.text}')
resp = response.json()
self.parse_resp(resp)
self.do_collector(data_str)
def parse_resp(self, resp):
if 'ob' in resp:
......@@ -642,16 +424,18 @@ class PxBypass():
if __name__ == '__main__':
url = "https://www.spirit.com/"
while True:
try:
px = PxBypass(url)
t1 = '[{"t":"PX12095","d":{"PX11645":"https://www.spirit.com/","PX12207":0,"PX12458":"MacIntel","PX11902":0,"PX11560":2352,"PX12248":3600,"PX11385":1700019122060,"PX12280":1700019122064,"PX11496":"8a5265b0-8367-11ee-9a58-bd42f5c10ff9","PX12564":null,"PX12565":-1,"PX11379":true}}]'
t2 = '8a5265b0-8367-11ee-9a58-bd42f5c10ff9:v8.7.2:317'
# print(px._gen_pc(t1, t2))
px.run()
# except KeyError:
# pass
except:
traceback.print_exc()
time.sleep(1)
url = "https://booking.flyfrontier.com/Flight/InternalSelect?o1=DEN&d1=LAS&dd1=2023-11-30&ADT=1&umnr=false&mon=true"
url = "https://www.flyfrontier.com"
# while True:
try:
px = PxBypass(url)
t1 = '[{"t":"PX12095","d":{"PX11645":"https://www.flyfrontier.com/","PX12207":0,"PX12458":"MacIntel","PX11902":0,"PX11560":2839,"PX12248":3600,"PX11385":1700206931539,"PX12280":1700206931543,"PX11496":"d17e7c10-851c-11ee-8b6a-39050a20a12c","PX12564":null,"PX12565":-1,"PX11379":false}}]'
t2 = 'd17e7c10-851c-11ee-8b6a-39050a20a12c:v8.7.2:317'
# print(px._gen_pc(t1, t2))
px.run()
# except KeyError:
# pass
except:
traceback.print_exc()
# time.sleep(1)
......@@ -4865,7 +4865,7 @@ function createPx1(t) {
function getPX12573(a, b, c) {
let t = function (j, x, o) {
return j + 47458 + o.charCodeAt(14);
return j - 22790 + x.charCodeAt(31);
// }["apply"](null, ['0III0III', 'I000I0', 'uuid'])
}["apply"](null, [a, b, c])
// console.log(t)
......@@ -4908,10 +4908,10 @@ function createPX12508() {
return ENV.useragentdata.highvalue.brands
}
function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2, n) {
function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid, startTs, startTs2, n) {
// let vid = m['I000I0']
// let sid = m['I0I0II']
startTs2 += randomInt(21000,26000)
startTs2 += randomInt(21000, 26000)
console.log(vid, sid)
let data = {
// "PX11431": 1692944411084, // 0III0III
......@@ -4919,9 +4919,11 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
// "75602>44073>?2261175": "46531=77340=<1152246",
"PX12454": num1, // 0III0II0
"PX11701": num2, // I00III
"PX11529": parseInt(Math.random() * 46033724 + 46033724),// usedJSHeapSize
// "PX11529": parseInt(Math.random() * 46033724 + 46033724),// usedJSHeapSize
"PX11529": 74208842,// usedJSHeapSize
"PX11555": 4294705152,// jsHeapSizeLimit
"PX11833": parseInt(Math.random() * 60757720 + 60757720),// totalJSHeapSize
// "PX11833": parseInt(Math.random() * 60757720 + 60757720),// totalJSHeapSize
"PX11833": 80878510,// totalJSHeapSize
// "PX11840": "Fri Aug 25 2023 14:20:11 GMT+0800 (中国标准时间)",
"PX11840": new Date() + '',
// "PX12573": "e29b74b1", // parseInt(0III0III/10)
......@@ -4936,7 +4938,7 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
"PX11902": 1,
"PX11560": performanceNow(parseInt(Math.random() * 500 + 500)), // performance.now()
// "PX11332": 1692944411272,
"PX11332": startTs2 - randomInt(500,900),
"PX11332": startTs2 - randomInt(500, 900),
"PX12248": 3600,
"PX11385": startTs,
"PX12280": startTs2,
......@@ -4944,7 +4946,7 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
"PX12330": "109|66|66|70|80", // ["webstore", 'runtime', 'app', "csi", "loadTimes"];构造函数 长度
"PX11705": 1182, //fetch+''
"PX11705": 571, //fetch+''
"PX11938": true, //caches
"PX11602": true, //caches
"PX12021": "false", // webdriver
......@@ -4954,70 +4956,70 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
"PX12291": "",
"PX11881": ["loadTimes", "csi", "app"],// chrome 属性
// "PX12036":true,
// "PX12356":true,
// "PX11522":true,
// "PX12204":true,
// "PX12408":[
// {
// "tagName":"INPUT",
// "id":"origin",
// "type":"text",
// "name":"origin",
// "height":41,
// "width":184.65625,
// "x":29.8125,
// "y":384.546875
// },
// {
// "tagName":"INPUT",
// "id":"destination",
// "type":"text",
// "name":"destination",
// "height":41,
// "width":184.65625,
// "x":219.796875,
// "y":384.546875
// },
// {
// "tagName":"INPUT",
// "id":"departureDate",
// "type":"text",
// "name":"departureDate",
// "height":43,
// "width":184.671875,
// "x":29.8125,
// "y":464.546875
// },
// {
// "tagName":"INPUT",
// "id":"returnDate",
// "type":"text",
// "name":"returnDate",
// "height":43,
// "width":184.671875,
// "x":219.796875,
// "y":464.546875
// },
// {
// "tagName":"INPUT",
// "id":"passengersInput",
// "type":"text",
// "name":"passengersInput",
// "height":41,
// "width":380,
// "x":29.8125,
// "y":556.546875
// },
// {
// "tagName":"INPUT",
// "id":"promocode",
// "type":"text",
// "name":"promocode",
// "height":43,
// "width":180.5,
// "x":27.8125,
// "y":652.546875
// }],
// "PX12356":true,
// "PX11522":true,
// "PX12204":true,
// "PX12408":[
// {
// "tagName":"INPUT",
// "id":"origin",
// "type":"text",
// "name":"origin",
// "height":41,
// "width":184.65625,
// "x":29.8125,
// "y":384.546875
// },
// {
// "tagName":"INPUT",
// "id":"destination",
// "type":"text",
// "name":"destination",
// "height":41,
// "width":184.65625,
// "x":219.796875,
// "y":384.546875
// },
// {
// "tagName":"INPUT",
// "id":"departureDate",
// "type":"text",
// "name":"departureDate",
// "height":43,
// "width":184.671875,
// "x":29.8125,
// "y":464.546875
// },
// {
// "tagName":"INPUT",
// "id":"returnDate",
// "type":"text",
// "name":"returnDate",
// "height":43,
// "width":184.671875,
// "x":219.796875,
// "y":464.546875
// },
// {
// "tagName":"INPUT",
// "id":"passengersInput",
// "type":"text",
// "name":"passengersInput",
// "height":41,
// "width":380,
// "x":29.8125,
// "y":556.546875
// },
// {
// "tagName":"INPUT",
// "id":"promocode",
// "type":"text",
// "name":"promocode",
// "height":43,
// "width":180.5,
// "x":27.8125,
// "y":652.546875
// }],
"PX12207": 0, //v["self"] === v["top"] ? 0 : 1
"PX11538": 2, // history.length
"PX11984": "TypeError: Cannot read properties of null (reading '0')\n at de (https://client.px-cloud.net/PXVb73hTEg/main.min.js:796:13)\n at Eo (https://client.px-cloud.net/PXVb73hTEg/main.min.js:2294:31)\n at Co (https://client.px-cloud.net/PXVb73hTEg/main.min.js:2316:23)\n at https://client.px-cloud.net/PXVb73hTEg/main.min.js:2152:9",
......@@ -5028,7 +5030,7 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
"PX12544": true, // !(!window["WebAssembly"] || !window["WebAssembly"]["instantiate"])
"PX12589": "succeeded", // 执行 wasm 结果?
"PX11524": true, // wasm 计算结果
// "PX11847":true,
// "PX11847":true,
"PX11843": screen.width, //screen["width"]
"PX11781": screen.height,// screen["height"]
......@@ -5084,7 +5086,7 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
"PX11561": "3g",
"PX11877": true,
"PX12100": true,
// "PX12477":true,
// "PX12477":true,
// "PX12506": "arm",
"PX12506": ENV.useragentdata.highvalue.architecture,
......@@ -5144,7 +5146,7 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
// }],
"PX12508": createPX12508(),
"PX12549": true,
"PX11539": "831efc5e", //Me(console.log)
"PX11539": "PX11539", //Me(console.log)
"PX11528": "", // Object["getOwnPropertyDescriptor"](HTMLDocument["prototype"], "cookie")["get"]
"PX12271": "10207b2f",// Va(Object["prototype"]["toString"])
"PX11849": "10207b2f",// return Va(m["toString"]);
......@@ -5156,12 +5158,12 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
"PX12520": true,
"PX12524": "4YC14YCd4YCd4YCV4YCe4YCX4YGS5J256aus7r266YaI5oCR7r27", // Pu = speechSynthesis.getVoices() is(Pu[161].voiceURI)
"PX12527": "3207084bd110f1ac964863e23aa78e04", // '1970/1/1'
// "PX11663":"9f762773",
// "PX12347":"dae10548",
// "PX12389":"",
// "PX11883":"a3d12c4",
// "PX11959":"82002457",
// "PX12483":"a3d12c4",
// "PX11663":"9f762773",
// "PX12347":"dae10548",
// "PX12389":"",
// "PX11883":"a3d12c4",
// "PX11959":"82002457",
// "PX12483":"a3d12c4",
"PX12260": navigator.useragent,
"PX12249": false,
"PX11897": "90e65465", // 固定
......@@ -5187,14 +5189,14 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
"PX11446": true,
"PX12550": 1,
"PX12431": 0,
// "PX12053":true,
// "PX12029":false,
// "PX11503":true,
// "PX11570":true,
// "PX11406":true,
// "PX12449":true,
// "PX11636":false,
// "PX11650":true,
// "PX12053":true,
// "PX12029":false,
// "PX11503":true,
// "PX11570":true,
// "PX11406":true,
// "PX12449":true,
// "PX11636":false,
// "PX11650":true,
"PX11991": 10,
"PX11837": 48,
"PX11632": 0,
......@@ -5210,14 +5212,14 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
"PX12553": "Asia/Shanghai",
"PX12567": "w3c",
"PX12576": "screen",
"PX12554":"function getOwnPropertyDescriptors() { [native code] }",
"PX12577":"function query() { [native code] }",
"PX12554": "function getOwnPropertyDescriptors() { [native code] }",
"PX12577": "function query() { [native code] }",
"PX12594": false,
"PX12566": false,
"PX12571": "74d9c66", // allowedFeatures();
"PX12581": "default",
// "PX12582": 3,
// "PX12587": false,
// "PX12582": 3,
// "PX12587": false,
"PX11303": false,
"PX11515": false,
"PX12133": false,
......@@ -5287,7 +5289,7 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
"PX12572": "7ec700f02277463745cc71774c12c8aa",
"PX11477": "126.8696939282454",
"PX12109": "b908567e93d9ed24c036da7986349e97",
"PX12362": "f002a4208ac473ef3bd8237048ce6028",
"PX12362": "c401c016b1ed79a2c1e834d8de487dc0",
"PX12491": "be9996f96141c689cda7a1e4e1c28787",
"PX12130": ["Sha256", "_init", "_open", "_close", "F9Storage", "$", "F9Qubit", "F9Social", "html5", "$A", "_fbq", "_uxa", "__core-js_shared__", "_", "__f9publicCache", "ueto_1c8252a545"],
"PX12351": ["jQuery3510402196117429823861", "_html5shiv", "AccDC1698805894620"],
......@@ -5320,8 +5322,8 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
"PX12387": `${screen.width}X${screen.height}`,// F + "X" + N
"PX12003": screen.pixeldepth, // screen["pixelDepth"]
"PX11380": screen.colordepth, // screen["colorDepth"]
"PX11494": window.innerwidth, // v["innerWidth"]
"PX12411": window.innerheight, // v["innerHeight"]
// "PX11494": window.innerwidth, // v["innerWidth"]
// "PX12411": window.innerheight, // v["innerHeight"]
"PX11849": "10207b2f",
"PX11583": "en-US",
"PX12458": navigator.platform,
......@@ -5346,8 +5348,8 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid,startTs,startTs2,
"PX11496": uuid,
"PX12564": null,
"PX12565": -1,
"PX11379": false,
"PX11645": url
// "PX11379": false,
// "PX11645": url
}
})
}
......@@ -5360,22 +5362,22 @@ function genPayload3(url, sid, vid, ts, num1, num2, str1, uuid) {
let data = [{
"t": "PX12123",
"d": {
"PX12108": randomInt(539, 789),
"PX12414": randomInt(100, 300),
"PX11984":"TypeError: Cannot read properties of null (reading '0')\n at he (https://client.px-cloud.net/PXVb73hTEg/main.min.js:1141:11)\n at Fo (https://client.px-cloud.net/PXVb73hTEg/main.min.js:3316:20)\n at So (https://client.px-cloud.net/PXVb73hTEg/main.min.js:2940:21)\n at https://client.px-cloud.net/PXVb73hTEg/main.min.js:2937:13",
"PX12108": 501,
"PX12414": 26,
"PX11984": "TypeError: Cannot read properties of null (reading '0')\n at he (https://client.px-cloud.net/PXVb73hTEg/main.min.js:1136:13)\n at HTMLBodyElement.Hc (https://client.px-cloud.net/PXVb73hTEg/main.min.js:4106:25)\n at HTMLBodyElement.nbuWrapper (https://cdn.noibu.com/collect.js:1:128213)\n at ks (https://client.px-cloud.net/PXVb73hTEg/main.min.js:5227:20)\n at Object.2Lk4 (https://client.px-cloud.net/PXVb73hTEg/main.min.js:5082:22)\n at Rv (https://client.px-cloud.net/PXVb73hTEg/main.min.js:7533:51)",
"PX12303": "mouseover",
"PX11699": randomInt(1112964, 2221945),
"PX11699": 58848,
"PX11987": "true",
"PX12461": true,
"PX11652": "#header>DIV:nth-child(1)>DIV:nth-child(3)>DIV:nth-child(1)>DIV:nth-child(1)>DIV:nth-child(1)",
"PX11652": "#wisepops-instance-429858",
"PX11902": 3,
"PX11560": performanceNow(parseInt(Math.random() * 500 + 500)),
"PX12280": Date.now(),
"PX11496": uuid,
"PX12564": null,
"PX12565": -1,
"PX11379": false,
"PX11645": url
// "PX11379": false,
// "PX11645": url
}
},
{
......@@ -5399,7 +5401,8 @@ function genPayload3(url, sid, vid, ts, num1, num2, str1, uuid) {
"PX12565": -1,
"PX11379": false
}
}]
}
]
return JSON.stringify(data)
}
......@@ -5416,7 +5419,10 @@ let m = {
'I00III': '10697662696482325601',
'IIIII0': '_px2'
}
let a2 = "B1lZWQcHB1kUWV5RUVFdXFFRWVhYWBYWFhYHWVkHWVkUW1FbUFtYWApFUFoMWkVZWQ0NRQlYCwlFDVxYCg5YDQoJCw5eFhYWFllZWQcHWRQLCxReWBQ9Wi4cMj4mGAwvPVE8Ly5cJx9VVRYWFhYHWVlZBwcHBxReUV1cFhYWFlkHBwcHWRQLBFEDWgoBUB0EB15aXBtdWxgNWBYWFhZZWVkHWQcUWVpdUFBZWl1cUFleXFtfX1BaUFAWFhYWB1kHB1kHFFtRW1BaWw5fRVBaDFpFWVkNDUUJWAsJRVxZXgpbW1lcWVFcWRRbWV1bXlhYWBQcGh0NFhYWFgdZWQdZWQcHFFtRW1BbXVhRRVBaDFpFWVkNDUUJWAsJRQ1cWAoOWA0KCQsOXhQcGh0NFhYWFgdZB1lZWRQLHRYWFhZZWQdZWVkUClAOXAxYW1ENXl1RXlkMWVtfDV9fCl5YDF8NXl9ZW1ALC10MCQ4KXFAKCV9dXFlfW1FQXwxZC1xaDV0JXw1QCw=="
let a2 = "B1lZB1lZFFlaCVtdWgsKRVBcDl1FWVkNDUVQCQpbRQkJW1pbWgwKDFxdCRYWFhYHWVkHWVkHBxRZWglbXV4KUEVQXA5dRVlZDQ1FUAkKW0UJCVtaW1oMCgxcXQkUHBodDRYWFhZZWVkHWQcUWV1dXVFaWlleW11eX1BcWV9bX1oWFhYWWVkHWVlZFApQCQ5eXF4NDlxYDQldC1AMUF0JUFANWlpZWwoJXFBRDFBYClFeX1FaUFtRXg0LXQoOWA4OXFhYXQxdCVBcDVkWFhYWB1kHWVlZFAsdFhYWFgdZBwdZBxRZWglbXFtcWUVQXA5dRVlZDQ1FUAkKW0UJDgwKUQtbDV1aCV0UW1ldW15YWFgUHBodDRYWFhZZBwcHB1kUCwQKDAxRWhkCUAABWFlYHQQdGlgWFhYWWVlZBwdZFAsLFF5YFD1aLhwyPiYYDC89UTwvLlwnH1VVFhYWFgdZWVkHBwdZFFlfWFhZUFFQXlhRUFoWFhYWB1lZWQcHBwcUXFFRXQ=="
a2 = "B1lZB1lZFF8LXwsNWV1fRVBdWV1FWVkNDUVQCQxeRQ4KWwlYWlhQWlENDBYWFhZZBwcHB1kUCwQKDxlZBgwEWw5aWFlcBx1fAVgWFhYWB1lZWQcHBwcUXlFdWhYWFhYHWVkHWVkHBxRfC18LDVwLXkVQXVldRVlZDQ1FUAkMXkUOClsJWFpYUFpRDQwUHBodDRYWFhYHWVlZBwcHWRRZX1hYWlhbX1BaXF5dFhYWFllZWQdZBxRZX1FaUF9YWFFRX1teXV9cWFtQWxYWFhYHWQdZWVkUCx0WFhYWB1kHB1kHFF8LXwsMUApfRVBdWV1FWVkNDUVQCQxeRQpeXVtZCl0KWQ4LWRRbWV1bXlhYWBQcGh0NFhYWFllZB1lZWRRcWQxRDQkKCQpeC1oMDVhQXQkJWV9eUV8JWFxbUQ5fWw5ZXgxZCVpYWg4MWwkJCgpaWltQWQlQWAkLWAxbX1FZFhYWFllZWQcHWRQLCxReWBQ9Wi4cMj4mGAwvPVE8Ly5cJx9VVQ=="
let res = $C_kKK(atob(a2), 872 % 128).split('~~~~')
let vid, sid, uuid, ts, num1, num2,
......@@ -5433,7 +5439,7 @@ res.forEach(e => {
break;
case"o1oo11":
hash = data[1]
hash2 =data[2];
hash2 = data[2];
hashv = data[3]
break;
case"o11o11":
......@@ -5469,16 +5475,16 @@ res.forEach(e => {
}
})
uuid = '35e35ce0-82d2-11ee-aaff-1722edcfad08'
uuid = '7a9756d0-8515-11ee-a2c6-5b29c1e479a6'
console.log(res)
// startTs PX11385
// startTs2 PX11280
console.log(genPayload2('url',
sid, vid, ts, num1, num2, str1, uuid
console.log(genPayload3('https://www.flyfrontier.com/',
sid, vid, ts, num1, num2, str1, uuid
,1699954985393,1699954593333
, true
, 1700203779263, 1700203786744
, false
)
)
......@@ -5497,7 +5503,11 @@ console.log(genPayload2('url',
//
//
// log}))
// console.log(getPX12573(1698746265,'f0e7047f-77d3-11ee-b235-351f775e4948', 'efd78db0-77d3-11ee-9223-6f639400456d'))
console.log(getPX12573(
1700202494,
"7cc4340e-8512-11ee-bb46-ed9f28b5fd16",
"716c90f0-8512-11ee-8c96-410f8e8f9c35"
))
console.log(genUuid())
\ No newline at end of file
import random
import tls_client
session = tls_client.Session(client_identifier='chrome_112')
url = "https://www.spirit.com/api/prod-token/api/v1/token"
data = {
"applicationName": "dotRezWeb"
}
cookies = {
"rxVisitor": "1700027313771L5H3HKU7HLR0P7L4VNDKVF35MQJ3RO44",
"userCountryLocation": "US",
"userGeolocation": "-121.9858, 37.5710",
"_pxhd": "76a5fc0e989d4325bcee72ba2ced3cb7502333468537a08718a53dd20d66cb9a:9d81668a-837a-11ee-bc0c-ccadff7955f6",
"bm_sz": "BE3552988E319DFE06E96220E4389F55~YAAQlvTVFxk0PM+LAQAAATOG0RVo4/s97TsnB+BIxQYuNknYXcbwlyPDbigKc6PyDa1FlQuMeMq2P/EfVXxwvnsJjeg9vrTv/bMxdZTh1ZsFOgZ6DpA9ZP+xuGowSAqUGWTAPZORUgR60OcMVZh8zof92SVw5O7Jj7IRwYOWoIBirWOaorHM1gOyptB9irFsza4MXY9zoaAr+kUAgKI+qa3yyCduaQtcPVHoWEd5B5zqM7vCkTtdKcflPc/2QUX9vQeByAu6QUhkgFKLWw0yx1UOciAiqhr6kKFGl3Grg6tnb4w=~3227973~3684420",
"PIM-SESSION-ID": "h0eUxvYe9fOrnkvt",
"_pxvid": "9d81668a-837a-11ee-bc0c-ccadff7955f6",
"pxcts": "a11fbf4d-837a-11ee-8073-778b86be1060",
"ak_bmsc": "5F5BC952B8085705C52F23BC62DBE73B~000000000000000000000000000000~YAAQlvTVF0A5PM+LAQAAUkuG0RWgiZbQ1FYtdOmP1/1xiKHaN+2ci73NE6epO/THxsu6ek59FE+ExBc6yyGXz6++gEUqLbtQdktgDy+Mht/9CGvQVNV8cyF4YgwPde8SWQROufP0UH/vyZNWej9N2rGRqtvXDWh7WIZKbw/Pw42mlxG44exkHc9gpyMCPI9/qzp2WLPoZPwEhcSmEIHg7ZAzBKe8fKWrdhtBW2tJtzAkYky0CGjeAldle7afNjzuMp/pK0CXUbp/lzk5vJfE7Z5eX6+VMVs+hLD6LsWv5R3DjmoYBLSTinuIPTQB1hdlFJ1jwikDroWuKCn0k/UNsE80H6heJngwRBvdQfZxpkyPMHfIg1AABr83BSUhAdrcHhkdULIYnVQLwci+Mgat4kVR0ZFPqJJ/rC7jMct1XGM3h1wMnFYDDFNEf86CW23YSoxC/MKmK6vA3jb4UJrA0NziU21ly3xhzYdyB1UTDiYTF2Jnko1mj5Ypsv0VUw==",
"dtCookie": "v_4_srv_6_sn_IUCGVPVF7GK0EE1KTCUACL20BM3FJRSC_app-3A73bede5a20cee83c_1_ol_0_perc_100000_mul_1_rcs-3Acss_0",
"CURRENT_CULTURE": "en-US",
"ORA_FPC": "id=644191f7-90cd-4bee-9fca-35f98d0b43f2",
"WTPERSIST": "",
"_gcl_au": "1.1.579054859.1700027324",
"_ga": "GA1.1.722834412.1700027324",
"_yoid": "2dac7801-644c-40dd-ad14-82588be413fc",
"_yosid": "54621d25-7aa9-49c3-9c84-297be5dc5f87",
"_mibhv": "anon-1700027325573-5372561741_7060",
"_pin_unauth": "dWlkPVpEY3dOV1V6TlRNdFpXUTBZaTAwTlRNNUxXSm1Oekl0WXpZd09HTTNPV1F5WVRFMA",
"_ctz_variation": "placebo-1%253A99-456c07caead5e3bf9b13bcf45821feda=1&optSetWidgetEndpoints-90%253A10-9f30ca063cf6ace3b7e85b16368565e6=0",
"QSI_HistorySession": "https%3A%2F%2Fwww.spirit.com%2F~1700027464184",
"OptanonAlertBoxClosed": "2023-11-15T05:51:29.606Z",
"mmapi.p.bid": "%22prodphxcgus01%22",
"mmapi.p.srv": "%22prodphxcgus01%22",
"mmapi.p.pd": "%22fgpSWUWiaYjo9_9yESZFKOi4XaqcmMi6ZD7ryKElpdg%3D%7CAwAAAApDH4sIAAAAAAAEAGNhsCzVMhKSOCLKwFyQUcEoxMDoxGDuInmEkWHllpev5j297eE7IxNMMwDBfyhgYHPJLEpNLmEUkmAEiYPBMSFmhmIzZoZnhswMnAyugYwM014szeIRkgBrAyoVkvj_H6gcrIPxCVBV4WIWBgZZd0aGdfpTWdfgUHgcaOyMahYGRpD5IL3aXowMXb4h79_i0PBYmpmhth1o8tMARgat1RIeB3Ao3GvAzOC9CKhwXxAjg4y_s-YVHAq9gb6atRKo8AxQocH1KFZhHAqLgAp_rAC6FRQOILdaBzMy7BOrtC3BoeGFOTPDhFVAk2eFMDKs6ZSc0odDobkNM0P3eqBCN2C4NvCnBZXjUPgKGK75wHBlBEUDOKhBkcPoCgC9P4mN6gEAAA%3D%3D%22",
"showCCPopup": "false",
"mmapi.e.mm_data_user": "%7B%22isGuest%22%3Atrue%2C%22userId%22%3Anull%2C%22sessionId%22%3A%221700027321910.cllrrdxk%22%2C%22loyaltyID%22%3Anull%2C%22loyaltyTier%22%3A%22guest%22%2C%22loyaltyTierPoints%22%3Anull%2C%22loyaltyMembershipType%22%3A%22SD%22%2C%22loyaltyMembershipPoints%22%3Anull%2C%22postalCode%22%3Anull%2C%22country%22%3Anull%2C%22countryCode%22%3Anull%2C%22age%22%3Anull%2C%22countryCallingCode%22%3A%22%22%2C%22dateOfBirth%22%3Anull%2C%22email%22%3Anull%2C%22firstName%22%3Anull%2C%22firstSession%22%3Atrue%2C%22gender%22%3A%22%22%2C%22hasTransacted%22%3Afalse%2C%22homeAirportCode%22%3Anull%2C%22language%22%3A%22English%22%2C%22lastName%22%3Anull%2C%22mastercardHolder%22%3Afalse%2C%22phoneNumber%22%3Anull%2C%22secondaryAirportCode%22%3Anull%2C%22username%22%3Anull%2C%22timeUntilDeparture%22%3A%22%22%2C%22searchTime%22%3A%22%22%7D",
"mmapi.p.uat": "%7B%22PriceSensitive%22%3A%22No%22%2C%22COVIDEngage%22%3A%22No%22%2C%22ReservationCred%22%3A%22No%22%2C%22Language%22%3A%22English%22%2C%22FreeSpirit%22%3A%22No%22%2C%22Mastercard%22%3A%22No%22%2C%22NineDollarFC%22%3A%22No%22%2C%22PrevPurchase%22%3A%22false%22%2C%22PrevPurchBag%22%3A%22false%22%2C%22PrevPurchSeats%22%3A%22false%22%2C%22PrevPurchThrill%22%3A%22false%22%2C%22PrevPurchPkg%22%3A%22false%22%2C%22LoggedIn%22%3A%22No%22%2C%22Age%22%3A%22%22%2C%22LeadTime%22%3A%22%22%2C%22BookDate%22%3A%22%22%2C%22Bags%22%3A%22undefined%22%7D",
"dtSa": "-",
"bm_sv": "2024462CF14D22CD5AC4DBE991280553~YAAQlvTVF5IZPc+LAQAABEeL0RVakxsbkPZYLgP4oCbh72NVxwxcxNZ//eIVGzMTEbJuduXSdPzphTLscNeUQrRn9GhttjJXa5/La2CGj0JRx8gY/Wmc6DcrtWJZNGgvHiua08DekqpjfTwbrpxnyVcQNuLJxwYaf+tihHmkBq40uL2jKAI4yJBMo/hNi8srwffGL4J69nC3zGH94gDmKgf1HvWoyzWAteEY1LDSiYoX89yZa3mmIfICJVPKyXKC~1",
"OptanonConsent": "isGpcEnabled=0&datestamp=Wed+Nov+15+2023+13%3A54%3A08+GMT%2B0800+(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=202211.2.0&isIABGlobal=false&hosts=&consentId=001d89d1-0842-4277-a5ba-5ba86561389d&interactionCount=2&landingPath=NotLandingPage&groups=C0002%3A1%2CC0003%3A1%2CC0004%3A1%2CC0001%3A1&geolocation=US%3B&AwaitingReconsent=false",
"_ga_VKEG2ZBNZ5": "GS1.1.1700027324.1.1.1700027649.55.0.0",
"_px2": "eyJ1IjoiZjI0MTc5NTAtODM3YS0xMWVlLWE2ZDUtYWI4OTdjMmNmMTEyIiwidiI6IjlkODE2NjhhLTgzN2EtMTFlZS1iYzBjLWNjYWRmZjExNTVmMiIsInQiOjE2MDAwMjc3NjAwMDYsImgiOiJhN2MzODU4ZDM3OWI2MjI1ZDBkYzdiMDYxNWY5NDc1YmQyZTU3M2YzMGM2YzNjNDRjZTFhYWIxZmQ0YTdkMGI3MiJ9",
"fs_lua": "1.1700027657805",
"fs_uid": "#NC1WY#b63b46e3-7efa-4cd3-842d-55d288cccabd:6f224067-f9e5-4842-bb68-535bb1968e8f:1700027329348::3#/1731563328",
"_ctuid": "6e14c47f-06f8-4e1c-8d62-ff9433507a54",
"_ctpuid": "62a8b41b-0328-466e-95b6-b932a818ab63",
"_pxde": "fa1fcb9ddf7e3f980d5f01864d8d9d6c6b3b18f20792cea486a3bb53de81e7fd:eyJ0aW1lc3RhbXAiOjE3MDAwMjc3MDQ1ODR9",
"_pageviewUUID": "0e510bec-c5d7-4284-868e-15294f7f1f38",
"_abck": "D8458A31293EEC1F586B42594B90A22E~-1~YAAQlvTVF+VHPc+LAQAAgjiM0QpNbqOlylO8AyD2skn9e3+WXEgKRSA0C6lKhb+3jO4jHXB2vCL5Bg6NZq2H35siZN3gi5hVPn5fCDLC/bPoxgpw7thWGiQXXSJbwA/HFpG3FRLRw1MBkyy6yfIeBaL/wZxJnoQPW0SMuso7xgNVVRZQGR8r0atqbEso3EwAby84wuLElcP6wBJTK/dr26S2I7ItRmNjoGwHxNnCGAOk+zb9qT4+TBfRmdHJAE8xK8U2pZGuCKCYXkv0wiL2ag6P5v9o2fcM7yZGXXFLtYxomx6N62IfyLy+KApnj8KVnSFXYN7klpmkiDuJ+FhZyQU0ffTVg1BK25DpZreaz/yN2l4PzA2o1AIs5gON1Cz3NKq5nxPlL3ZfKSg5M7PPbLltefH2Yn4j~0~-1~1700031067",
"dtPC": "6$227646043_302h20vHUJJPLCCFKEKCKCIBIRGUBSSFAHKQPTC-0e0",
"rxvt": "1700029516680|1700027313770"
}
cookies.update(
{
# "_pxvid": "394da189-837c-11ee-bdde-eaea89be1e74",
# "_pxde": "3a352ba3f42d3611d577c5e77b0017c8c6eb2f5b5686fbfef35a80cb308db850:eyJ0aW1lc3RhbXAiOjE3MDAwMjgwMTAzMjV9",
# "_px2": "eyJ1IjoiZTc3M2NlMzEtOTVlNy00ODFmLWI0NTgtMWY3N2NhYzBiNmIyIiwidiI6IjM5NGRhMTg5LTgzN2MtMTFlZS1iZGRlLWVhZWE4OWJlMWU3NCIsInQiOjYyMDIzMzg4MDAwNCwiaCI6ImZiNjBjMjBmMjA2YjQ1ZjNjZTMwMzgxNWQ4NDQzOGFlZmYxZGM5NmVhMDE4MWI2M2U5ZWUxMjcwNTFmODQwODgifQ==",
# "pxcts": "3a5e111a-837c-11ee-86af-12e2d33ad6dd",
# "_pxhd": "f85d11813459ae2c363e2697c7564aa252f18a2e2147091ced35f342b66d2add:394da189-837c-11ee-bdde-eaea89be1e74",
}
)
prox = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{random.randint(10000, 13500)}'
cks = '_pxvid=8073bb71-8516-11ee-817d-e853aafda7cf; pxcts=8073c7b1-8516-11ee-817d-88ea0a1feeea; _px2=eyJ1IjoiZTNkMGQyYjUtMWU5MS00YjRmLTgwMzktZGRhNmJjOTkyYjI1IiwidiI6IjgwNzNiYjcxLTg1MTYtMTFlZS04MTdkLWU4NTNhYWZkYTdjZiIsInQiOjYyMDIzMzg4MDAwNCwiaCI6ImEzZTYwNjhmODI1MjJkM2VhMDVlMzI2YWQxMWQyZjQ1OGNmNzNlNTgyY2YwZDllNzBkMDQzN2M2YzdmYjg1ZjcifQ=='
response = 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"
}, cookies=cookies,json=data, proxy={
'http': 'http://127.0.0.1:8890',
'https': 'http://127.0.0.1:8890',
}, insecure_skip_verify=True)
print(response.text)
print(response)
print(response.status_code)
url = 'https://booking.flyfrontier.com/Flight/InternalSelect?o1=DEN&d1=LAS&dd1=2023-11-30&ADT=1&umnr=false&mon=true'
response = session.post('http://52.52.23.116/tls/forward',
json=dict(url=url, headers={
"authority": "booking.flyfrontier.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",
"cache-control": "no-cache",
"pragma": "no-cache",
"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": "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",
"cookie": cks
}, method="GET", proxy=prox, debug=True
# ,allow_redirects=True
))
response = response.json()
print(response['status_code'])
print(response['text'])
\ No newline at end of file
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