Commit e680799d authored by wang's avatar wang

1

parent 31adf5c5
......@@ -30,6 +30,7 @@ const notImplemented = require("../../browser/not-implemented");
const idlUtils = require("../generated/utils");
const {Canvas} = require("../../utils");
const util = require("util");
const {Image} = require("canvas");
let metrics = {
"₹": {
"1000px sans-serif": {
......@@ -2383,6 +2384,16 @@ function randInt(a, b) {
}
class ImageData{
constructor(w, h) {
this.width = w
this.height = h
this.data = new Uint8ClampedArray(w*h*4)
}
}
class CanvasRenderingContext2D {
imageDatas = {
......@@ -2664,8 +2675,9 @@ class CanvasRenderingContext2D {
console.log('CanvasRenderingContext2D.createConicGradient')
}
createImageData() {
createImageData(w, h) {
console.log('CanvasRenderingContext2D.createImageData')
return new ImageData(w, h)
}
createLinearGradient() {
......@@ -3863,12 +3875,18 @@ let r = {}
}
let res = canvas.toDataURL(...args);
if (this.width === 300 && this.height === 150) {
res = window.ENV.jpg
if (this.width === 4 && this.height === 4){
res = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAA9JREFUGFdjZEADjKQLAAAA7gAFLaYDxAAAAABJRU5ErkJggg=="
}
if (this.width === 600 && this.height === 160){
res = 'data:image/png;base64,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'
res = 'data:image/png;base64,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'
}
if (this.width === 300 && this.height === 150) {
res = 'data:image/png;base64,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'
}
// if (this.width === 600 && this.height === 160){
// res = 'data:image/png;base64,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'
// }
console.log(this.width, this.height, 'canvas.toDataUrl', res)
if (args[0]){
res = res.replaceAll('image/png', args[0])
......
......@@ -20,12 +20,12 @@ Path(log_dir).mkdir(exist_ok=True, parents=True)
Path(work_dir).mkdir(exist_ok=True, parents=True)
class Reese84ByPass(object):
__session = tls_client.Session('chrome_112')
_session = tls_client.Session('chrome_112')
def __init__(self, target, proxy, thread_name='test'):
self.__target = target
if proxy != '':
self.__session.proxies = {
self._session.proxies = {
'http': proxy,
'https': proxy,
}
......@@ -37,16 +37,17 @@ class Reese84ByPass(object):
self._init()
self._repare_js()
self.__auth_token()
self._test()
# time.sleep(random.randint(3,5))
self.__get_session_token()
# self.__get_session_token()
return self._get_cookie()
def _init(self):
t1 = time.time()
url = "https://www.volaris.com/flight"
response = self.__session.get(url, headers={
"Host": "www.volaris.com",
url = "https://beta.makeabooking.flyscoot.com/Book/Flight?culture=en-SG&type=oneway&dst1=HKG&ast1=SIN&dst2=SIN&ast2=HKG&dd=2023-10-28&rd=null&adt=1&chd=0&inf=0"
response = self._session.get(url, headers={
"Host": "www.flyscoot.com",
"pragma": "no-cache",
"cache-control": "no-cache",
"sec-ch-ua-mobile": "?0",
......@@ -64,7 +65,7 @@ class Reese84ByPass(object):
def _repare_js(self):
t1 = time.time()
r1 = self.__session.get('https://www.volaris.com/Germand-and-haue-lent-Layest-Lord-former-Guill-m')
r1 = self._session.get('https://beta.makeabooking.flyscoot.com/Two-discharted-Not-ere-int-when-is-are-Poss-A-Sa')
self.log.log('REQU', f'JSURL: code:{r1.status_code} cost:{(time.time() - t1):.3f}s')
a, filename = tempfile.mkstemp()
envCode = open(work_dir + 'src/run.js', 'r').read()
......@@ -84,9 +85,9 @@ class Reese84ByPass(object):
# print(len(data['solution']['interrogation']['p']))
t3 = time.time()
url = "https://www.volaris.com/Germand-and-haue-lent-Layest-Lord-former-Guill-m?d=www.volaris.com"
response = self.__session.post(url, headers={
"Host": "www.volaris.com",
url = "https://beta.makeabooking.flyscoot.com/Two-discharted-Not-ere-int-when-is-are-Poss-A-Sa?d=beta.makeabooking.flyscoot.com"
response = self._session.post(url, headers={
"Host": "www.flyscoot.com",
"pragma": "no-cache",
"cache-control": "no-cache",
"sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"115\", \"Chromium\";v=\"115\"",
......@@ -95,41 +96,48 @@ class Reese84ByPass(object):
"sec-ch-ua-mobile": "?0",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
"sec-ch-ua-platform": "\"macOS\"",
"origin": "https://www.volaris.com",
"origin": "https://www.flyscoot.com",
"sec-fetch-site": "same-origin",
"sec-fetch-mode": "cors",
"sec-fetch-dest": "empty",
"referer": "https://www.volaris.com/flight",
"referer": "https://www.flyscoot.com/flight",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6"
}, json=data)
self.log.log('REQU', f'JSURL: code:{response.status_code} cost:{(time.time() - t3):.3f}s')
self.log.info(f'{response.json().keys()}')
assert response.json().get('return', False) != True, BaseException("js提交出错")
self.__session.cookies.update({
self._session.cookies.update({
'reese84': response.json()['token']
})
def __auth_token(self):
t1 = time.time()
url = "https://www.volaris.com/assets/config/volarisAppConfig.json"
response = self.__session.get(url, headers={
"Host": "www.volaris.com",
"pragma": "no-cache",
headers = {
"authority": "ibe.api.flyscoot.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",
"authorization": "",
"cache-control": "no-cache",
"sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"115\", \"Chromium\";v=\"115\"",
"accept": "*/*",
"content-type": "application/json",
"origin": "https://beta.makeabooking.flyscoot.com",
"pragma": "no-cache",
"sec-ch-ua": "\"Google Chrome\";v=\"117\", \"Not;A=Brand\";v=\"8\", \"Chromium\";v=\"117\"",
"sec-ch-ua-mobile": "?0",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
"sec-ch-ua-platform": "\"macOS\"",
"sec-fetch-site": "same-origin",
"sec-fetch-mode": "cors",
"sec-fetch-dest": "empty",
"referer": "https://www.volaris.com/",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6"
})
self.auth_token = f"{response.headers.get('Travel')}.{response.headers.get('Origin')}.{response.headers.get('Destination')}"
self.log.log('REQU', f'appConfig: code:{response.status_code} cost:{(time.time() - t1):.3f}s')
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-site",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
}
url = "https://ibe.api.flyscoot.com/v1/account/anonymous"
response = self._session.get(url, headers=headers)
print(response.text)
print(response)
self._token = response.json()['data']['accessToken']
self.log.log('REQU', f'__auth_token: code:{response.status_code} cost:{(time.time() - t1):.3f}s')
def __get_session_token(self):
t1 = time.time()
......@@ -144,15 +152,15 @@ class Reese84ByPass(object):
"sec-ch-ua-mobile": "?0",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
"sec-ch-ua-platform": "\"macOS\"",
"Origin": "https://www.volaris.com",
"Origin": "https://www.flyscoot.com",
"Sec-Fetch-Site": "same-site",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Referer": "https://www.volaris.com/",
"Referer": "https://www.flyscoot.com/",
"Accept-Language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
}
url = "https://apigw.volaris.com/prod/api/session"
response = self.__session.get(url, headers=headers)
response = self._session.get(url, headers=headers)
self.token = response.json()['token']
def _get_cookie(self):
......@@ -161,16 +169,70 @@ class Reese84ByPass(object):
"sec-ch-ua-mobile": "?0",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
"Content-Type": "application/json",
"Authorization": self.token,
"cookies": f"Bearer {self.auth_token}",
# "Authorization": self.token,
# "cookies": f"Bearer {self.auth_token}",
"Accept": "application/json",
"sec-ch-ua-platform": "\"macOS\"",
"Origin": "https://www.volaris.com",
"Referer": "https://www.volaris.com/",
"Origin": "https://www.flyscoot.com",
"Referer": "https://www.flyscoot.com/",
"Accept-Language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
}, self.__session.cookies.get_dict()
}, self._session.cookies.get_dict()
def _test(self):
headers = {
"authority": "ibe.api.flyscoot.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",
# "authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI0MzJhM2RmNi1iZmRmLTQ5NmMtOTJiMS1iN2EwMzBlNGJmNTgiLCJpYXQiOjE2OTc2ODE0MjEsInRrbiI6ImV5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS5leUp6ZFdJaU9pSlZibXR1YjNkdUlpd2lhblJwSWpvaU5Ea3hOVFV4TldJdE5UY3dOaTA1WVRBNExXVXdNbVF0TlRrek1tVXdOakZoTXpOa0lpd2lhWE56SWpvaVpHOTBVa1ZhSUVGUVNTSjkuMFA1T0xkSzF2V0p4VlFMblI2SHRaT2YtcExQZTNPT0pEdmR5aVVacW9zbyIsImlzcyI6InNjb290LWNtdyIsImF1ZCI6InNjb290LWFwcCJ9.byiajmbVNj87-eVT64Dfr-u-30YxdqGEHyPqDI07qsM",
"authorization": self._token,
"cache-control": "no-cache",
"content-type": "application/json",
"origin": "https://beta.makeabooking.flyscoot.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": "same-site",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
"x-scoot-appsource": "IBE-WEB",
"x-scoot-client-environment": "PROD",
"x-scoot-client-session": "4ddf4d27-d6a1-4b50-b533-04558f7ab4b8",
"x-scoot-client-version": "0.0.0"
}
url = "https://ibe.api.flyscoot.com/v1/booking/flight/availability"
data = {
"flightCriteria": [
{
"origin": "HKG",
"destination": "SIN",
"departureDate": "2023-10-28"
}
],
"passengerCriteria": {
"adult": 1,
"child": 0,
"infant": 0
},
"currencyCode": "HKD",
"promoCode": None,
"salesCode": None,
"flightFare": {
"fareType": [],
"classOfService": []
},
"cultureCode": "en-SG"
}
data = json.dumps(data, separators=(',', ':'))
response = self._session.post(url, headers=headers, data=data)
print(response.text)
print(response)
if __name__ == '__main__':
r = Reese84ByPass('https://www.volaris.com/', 'http://user-uni002-region-de:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600')
# r = Reese84ByPass('https://www.flyscoot.com/', 'http://user-uni002-region-de:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600')
r = Reese84ByPass('https://www.flyscoot.com/', 'http://127.0.0.1:7890')
print(r.start())
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.
#
# import json
#
# import requests
# import tls_client
# session = tls_client.Session(client_identifier='chrome_112')
# px = 'http://127.0.0.1:7890'
# session.proxies = {
# 'http': px,
# 'https': px,
# }
#
# headers, cks = ({'Host': 'apigw.volaris.com', 'sec-ch-ua-mobile': '?0', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'Content-Type': 'application/json', 'Authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJBUEkiLCJqdGkiOiJjOGU4YzQyYS1kZTE4LWQ1ZjgtYzcwZS0yYTk3NTE0NWUxM2IiLCJpc3MiOiJkb3RSRVogQVBJIn0.R85O4rA0tLfMAcrHu8MlZWfFmjMYS5eaWfOBF-kB3Yk', 'cookies': 'Bearer eyJraWQiOiJCaE10N01OTFVBNXdLbE5PRmFNU0liOUIwYUYxWWV0Z0VkaVJmWkJVYzJnPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI1cTB0NDRzazlrNjB2M3M5ZHZnZjZnbGZqOCIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoicnNcL3dyaXRlIHJzXC9yZWFkIiwiYXV0aF90aW1lIjoxNjkyNjk5MTc2LCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtd2VzdC0yLmFtYXpvbmF3cy5jb21cL3VzLXdlc3QtMl9GamFneTNwT0IiLCJleHAiOjE2OTI3MDI3NzYsImlhdCI6MTY5MjY5OTE3NiwidmVyc2lvbiI6MiwianRpIjoiZDc4MWI1Y2QtNjk3OS00N2ZkLTgyMmQtODE4NjE5Y2E1YzI4IiwiY2xpZW50X2lkIjoiNXEwdDQ0c2s5azYwdjNzOWR2Z2Y2Z2xmajgifQ.jXOnbJeSlb_8Nd4a0PZb19lYd0kfQ70FPM5Aeo5Tyg_zmhysxweQG9mvVz15QNy-QZjHCUjzzrx6XZzm8wf13ygS1pp-ApP03cPlsaaTeBV7Kb8WvbqQqm0ibZPQ1uGddv_VEqTDR3AHQEzyrQQFv2AXINl1TXBqtGLPVFcx03VN8B3yUSaQe-2oi7-sNiAe7EVcT4bT56XSogA2s_vsZbTBwZ529P3VtfmJNHu5JhSclzHvm7B_AZXwp6541WdxerURm5m-mNx09WUtS8BxWzJfewWVRm77eHs9NqMywHL9u8gpGYRjcSlf6Cu2RHsPVQiwOJsdqBWMPZj3lA30ng', 'Accept': 'application/json', 'sec-ch-ua-platform': '"macOS"', 'Origin': 'https://www.volaris.com', 'Referer': 'https://www.volaris.com/', 'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6'}, {'visid_incap_2041990': 'CwqOa7sPQDW09M0vj11rgyOK5GQAAAAAQUIPAAAAAACZNuTl6TgOfjQB+cpaul8e', 'nlbi_2041990': 'xU1VXrtlhzok5Dy61UqjOAAAAADOWWXmoaFMvql6IS09jMAB', 'incap_ses_1563_2041990': 'FH+nT/CZRExtQwz0b+SwFSWK5GQAAAAAZzzt6Q9NEsO7Yiye0YVCtA==', 'nlbi_2041990_2147483392': 'm0OnYc4ijAGgMKPp1UqjOAAAAAAtupPdNcbbvlu+pLRF9dl9', 'nlbi_2306356': 'wKT+cnwPz2oun+KtXEW6EwAAAADuQWtKXZQSk5bxMCE86Vkv', 'visid_incap_2306356': '+DDVWdI3S3OdG1ITygdgjSmK5GQAAAAAQUIPAAAAAAC2MSTxXl3eg+4rs6BogUu7', 'incap_ses_1563_2306356': 'svTlfMEtSyPbWAz0b+SwFSmK5GQAAAAAHENLmwuNnUpY4RvrE0kaiw==', 'reese84': '3:m5/7WcMyayLIegGCcoV8Hw==:x5P3sx63zLh4tOYZhW6Ly8SPuMV0TsOfG4wELJML64TzEaFcPScFU4WDAH3YX9ahB3n0DNxPa1FfacwiIxe2PPAmLW73GHvzVzGKo15joCSv1u0GxXThdXDAGxWYlGcx+5zRFcqHSG2T6+wcBJpykdVMKo/+Dh4VgH0jqv9HQnE5gbSVcO6YN5WWG7wFt0QRTDziBnaPpTibYF6QUYTduMWZ/BBhfMydNeoDz2MRD7zg2+D3VdKpppeTYRDGL8Y6aHpNqZTBMNMICS3TY7fZkJjeRRardOoc6qVKclFDe0d24bO6+kf6QG+stod7cdOCdVzFlE9U2O2oRNsbwhwqUuB+kcofmatdARbdv2EZNWaUEYy6M7rSPniUhdM8rK5/u5wt4AIQJbGrvfhhbBavGXbMhxFGaX/sMs4PgoccB9ZDRVtSgx9kAiLsHQywky/BfpqDDlF5fgLlfbf58ytrhk5pfq1zwdtvqx+M0Vkz9v0YykyKwHMQ8tk4gH1sOrkvffPKAXyzmnLho/nIM9h7+RtLTUeAdDx9NwZCs20Zgo6dMscPEC1KrWvJLv+iA9xUzFgGxpgEvinZjEWZZCVaIg==:2hWNySCnGJOPEJ67ZuJxP82VQw5agMu6RPhKR+h2TOM='})
#
# url = "https://apigw.volaris.com/prod/api/availability/search"
# data = {
# "passengers": {
# "types": [
# {
# "type": "APL",
# "count": 1
# }
# ]
# },
# "criteria": [
# {
# "stations": {
# "originStationCodes": [
# "ACA"
# ],
# "destinationStationCodes": [
# "BOG"
# ]
# },
# "dates": {
# "beginDate": "Fri, Aug 11, 2023"
# },
# "filters": {
# "fareTypes": [
# "R"
# ],
# "maxConnections": 20
# }
# }
# ],
# "codes": {
# "currencyCode": "MXN",
# "promotionCode": "VUEH50"
# },
# "taxesAndFees": 2
# }
# data = json.dumps(data, separators=(',', ':'))
# response = session.post(url, headers=headers, data=data, cookies=cks)
#
# print(response.text)
# print(response)
import requests
import json
headers = {
"Host": "ibe.api.flyscoot.com",
"sec-ch-ua": "\"Google Chrome\";v=\"117\", \"Not;A=Brand\";v=\"8\", \"Chromium\";v=\"117\"",
"sec-ch-ua-mobile": "?0",
"x-scoot-client-session": "78504ca8-7ebf-4878-88d7-aa79bad2a3de",
"authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIyZGFiOTViZS1lOGFjLTQ5YTgtODI4NS03NjQ2YTNhNzdlODMiLCJpYXQiOjE2OTc2ODE3NDAsInRrbiI6ImV5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS5leUp6ZFdJaU9pSlZibXR1YjNkdUlpd2lhblJwSWpvaU5UUTBPRGhoTmpJdFpqUmhPQzB3TWpFeUxUUXdZVEV0Wm1SbU5XTmpZVFl6WlRVeklpd2lhWE56SWpvaVpHOTBVa1ZhSUVGUVNTSjkuaWNWeW8wZkxCOTJqbC1qVkVQSWlnSmlzY29ZWVFFZkJkTkM1ZlhfSEFhWSIsImlzcyI6InNjb290LWNtdyIsImF1ZCI6InNjb290LWFwcCJ9.vWi41pv28jUNkpdOf1NJ9G79crE42u89nf447MCErOc",
"x-scoot-client-version": "0.0.0",
"x-scoot-client-environment": "PROD",
"content-type": "application/json",
"accept": "application/json, text/plain, */*",
"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-scoot-appsource": "IBE-WEB",
"sec-ch-ua-platform": "\"macOS\"",
"origin": "https://beta.makeabooking.flyscoot.com",
"sec-fetch-site": "same-site",
"sec-fetch-mode": "cors",
"sec-fetch-dest": "empty",
"accept-language": "en-US,en;q=0.9"
}
tk = {'token': '3:hLNPM/FJ42UJIREojwH4gw==:LRsi1ZVl7cStuayxLXtWSvU+ujviW3O3IUpPqTNhMisTTTxRzbi1Kjk27v26yHTxpooN13mJqkU3jbZ67fnkeiRF1oUzE1pNbHm6zy9FaXxDYXxyEmhmZ2UgVBsXinZQoeKPpwTKSoIsWeQ/7Z0FbTgER08hu2BxC6r0zElgC+5BH3Wz1eDNupsnrceP2iCzese1hSY5h/YDTUWYwhohtgO9J5M1puQn1JWQDWx30mIPewOFzaAsURv2i7mSfy9Fh7o6SWGq5e8sL0lnYsNfOPKXzsqpJ7P+qh6K7slKsO7iIvECramMEDJ/qAnnN5jR0AIwo9Tnlz9DYNTB+AntIq6ugIwLZZL0J/NLoosoAvgLLYSuhp0ITZnh1H/enecP5Bsrbv7I49TcNcJvY67ooepeBl5WfD8k3nghu2gq4oqO8byVPPpdA754BSguEqI8iMNI1Fx9HQxRz6HBDFUfgEI2mF2HtEnJ6GRJqNUtmKM8hXX9q++Z5CmQ6FvT4ovWFHgeTGHnY/9PwbDDc4NAZQ==:zATLGWtNQPJyHGxmebNbMYRJ0f/ybJoqbHY9bVeUCdM=', 'renewInSec': 897, 'cookieDomain': '.flyscoot.com'}
cookies = {
"reese84": "3:vxybC7p3hsZePBuJoyhM0A==:EtQO6aXarh6Nc63yVYnUUBproiFXnn247vw9VN4e730/mWM6UNDAPeqKZE0BCkRG2dqv9u5/ZZ7xOT22FbDY2HUCtLRDEhXR4IRORs5Bx+rcaGwoPMPbtIdfBlyh8Lkogn7/cPYfZf6zDhAizxBccQWTlR2drfMLMPnWjfNQrnatFOsNR8mK1N05LK6ZzJdw6k/JETIA770y1byfXDLGa/ng51alDFJym9G9YyD+1+5ehOohB4sRNlW4iwc1Hs3ENW6kDMg7lKs9Lc6Zg+3P1Nft5t72qyiycqO+wyaZAUHQmio3A0JfCfWzbkAnWU8m+NV6yp/7rH6EQ4ei6pLLiHD202kFWbEI0C281HpvqKmiGujDhZXYuQT1VVgL0TjMh9HmDZCgcnwLHQ54vPmczCpzP6rzPvd68pbJC+Y+YvCxdFduzR+K8gQ4MMX6TK3T21XzrqjKAcGTwu0Q6qe0bBBKHzton31Cni+c92wz2gU=:xj38Xs2yXGljRuFj3XCspcu4Jyi3dpx/a4O3SqUeiVM=",
# "reese84": tk['token'],
"visid_incap_2572958": "PR2Ifx/iR5emGW58N9ofwEuRMGUAAAAAQUIPAAAAAABkoEo07vc5+gNY6Ny0wV5t",
"nlbi_2572958": "iX9hMwRucHy+iVcE3Zs2agAAAAA36Uzl/T9S2MCD7nT6yrGi",
"incap_ses_1512_2572958": "gmp7VJlDzCfD/oqAsLT7FEuRMGUAAAAA7Vx9L9TQAEitw4iH9BjoSw==",
"_gcl_au": "1.1.1125811041.1697681744",
"_ga": "GA1.1.1526378520.1697681744",
"_ga_GFV545L5B3": "GS1.1.1697681743.1.0.1697681743.60.0.0",
"_cls_v": "b70454a8-3d7e-47fd-b7ba-3205fd4f46fa",
"_cls_s": "bdca8c45-b1a5-42fe-921a-caf564bd6954:0",
"__clickidc": "169768174471845017",
"_fbp": "fb.1.1697681744316.280343139",
"dtCookie": "v_4_srv_-2D96_sn_GPMC8EALE5076L3GMNMRTKDTSGVHCCCJ",
"rxVisitor": "1697681744538NJ06AD13G7MP1H2ITI42RSCVKSD7AUHS",
"dtSa": "-",
"rxvt": "1697683544543|1697681744538",
"dtPC": "-96$281744536_923h-vMRDALFCWIFNGJAAQFVCKUKTHNCAHDCUP-0e0",
"tfpsi": "305072e0-447a-4683-bf54-b29f70474466",
"tmpcurr": "HKD",
"AMP_TOKEN": "%24NOT_FOUND",
"_yjsu_yjad": "1697681744.d764a69e-4b35-4d30-9927-3e1615ee576a",
"_tt_enable_cookie": "1",
"_ttp": "wbUq2MqpZU4RavnCMqmXR4pnUan",
"QSI_HistorySession": "https%3A%2F%2Fbeta.makeabooking.flyscoot.com%2FBook%2FFlight%3Fculture%3Den-SG%26type%3Doneway%26dst1%3DHKG%26ast1%3DSIN%26dst2%3DSIN%26ast2%3DHKG%26dd%3D2023-10-28%26rd%3Dnull%26adt%3D1%26chd%3D0%26inf%3D0~1697681745165"
}
url = "https://ibe.api.flyscoot.com/v1/booking/flight/availability"
data = {
"flightCriteria": [
{
"origin": "HKG",
"destination": "SIN",
"departureDate": "2023-10-28"
}
],
"passengerCriteria": {
"adult": 1,
"child": 0,
"infant": 0
},
"currencyCode": "HKD",
"promoCode": None,
"salesCode": None,
"flightFare": {
"fareType": [],
"classOfService": []
},
"cultureCode": "en-SG"
}
data = json.dumps(data, separators=(',', ':'))
response = requests.post(url, headers=headers, cookies=cookies, data=data)
print(response.text)
print(response)
\ 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