Commit 3a506e98 authored by wang's avatar wang

test

parent 8a592735
...@@ -66,7 +66,7 @@ def exec(thread_id): ...@@ -66,7 +66,7 @@ def exec(thread_id):
try: try:
px = get_proxy()['url'] px = get_proxy()['url']
# px = random.choice([px]) # px = random.choice([px])
cf = Reese84ByPass(target="https://www.flyscoot.com/", proxy=px, thread_name=f'{thread_id}') cf = Reese84ByPass(target="https://www.transavia.com/", proxy=px, thread_name=f'{thread_id}')
headers, cookies = cf.start() headers, cookies = cf.start()
# cf.test() # cf.test()
add_header(headers, cookies, px, thread_id) add_header(headers, cookies, px, thread_id)
......
...@@ -19,7 +19,7 @@ js_level = logger.level('VMJS', no=100, color='<fg 185>') ...@@ -19,7 +19,7 @@ js_level = logger.level('VMJS', no=100, color='<fg 185>')
work_dir = '/home/opt/lcc-reese84/' work_dir = '/home/opt/lcc-reese84/'
if platform.platform().startswith('mac'): if platform.platform().startswith('mac'):
work_dir = '/Users/wang/Documents/company/lcc-reese84/' work_dir = '/Users/wang/Documents/company/lcc-reese84/'
log_dir = '/data/log/lcc-y4/' log_dir = '/data/log/lcc-hv/'
if platform.platform().startswith('mac'): if platform.platform().startswith('mac'):
log_dir = '/Users/wang/company/lcc-reese84/' log_dir = '/Users/wang/company/lcc-reese84/'
Path(log_dir).mkdir(exist_ok=True, parents=True) Path(log_dir).mkdir(exist_ok=True, parents=True)
...@@ -51,10 +51,32 @@ class Reese84ByPass(object): ...@@ -51,10 +51,32 @@ class Reese84ByPass(object):
self.log.info(f'proxy:{proxy} target:{target}') self.log.info(f'proxy:{proxy} target:{target}')
self._cache_md5 = '' self._cache_md5 = ''
self.add_header = {
"authority": "www.transavia.com",
"accept": "*/*",
"accept-language": "en,en-US;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
"cache-control": "no-cache",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"origin": "https://www.transavia.com",
"pragma": "no-cache",
"referer": "https://www.transavia.com/en-UK/book-a-flight/flights/search/",
"request-context": "appId=cid-v1:942f733a-0e08-45b5-a6e2-53089f65a4b2",
"request-id": "|3651048e1bbe4dc38890f5cba115b92f.11b030bc635d49f3",
"sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"macOS\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"traceparent": "00-3651048e1bbe4dc38890f5cba115b92f-11b030bc635d49f3-01",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"x-requested-with": "XMLHttpRequest"
}
def start(self): def start(self):
# self._init() # self._init()
self._repare_js() self._repare_js()
self.__auth_token() # self.__auth_token()
# self._token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzZTc4NDE1Zi03OTc2LTRjNDctYmQwNC0xM2FlMGJhOTRkMTQiLCJpYXQiOjE3MTUyNDEzMzMsInRrbiI6ImV5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS5leUp6ZFdJaU9pSlZibXR1YjNkdUlpd2lhblJwSWpvaU1UTmtZek16WXpJdE5HVTJaUzAxWXpJMExUbGhPR010WWpBME9UTTJOV0V5T1RjM0lpd2lhWE56SWpvaVpHOTBVa1ZhSUVGUVNTSjkuRVUtQ1l3eVJmZUVaNDZvLUVHM2pUejNjRkMwYkFXNW1tX2VhZ05CMXE3RSIsImlzcyI6InNjb290LWNtdyIsImF1ZCI6InNjb290LWFwcCJ9.7WSVavUdvOUl4tjv9hpL4jeQTCnYh4bOUg669YERe-s' # self._token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzZTc4NDE1Zi03OTc2LTRjNDctYmQwNC0xM2FlMGJhOTRkMTQiLCJpYXQiOjE3MTUyNDEzMzMsInRrbiI6ImV5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS5leUp6ZFdJaU9pSlZibXR1YjNkdUlpd2lhblJwSWpvaU1UTmtZek16WXpJdE5HVTJaUzAxWXpJMExUbGhPR010WWpBME9UTTJOV0V5T1RjM0lpd2lhWE56SWpvaVpHOTBVa1ZhSUVGUVNTSjkuRVUtQ1l3eVJmZUVaNDZvLUVHM2pUejNjRkMwYkFXNW1tX2VhZ05CMXE3RSIsImlzcyI6InNjb290LWNtdyIsImF1ZCI6InNjb290LWFwcCJ9.7WSVavUdvOUl4tjv9hpL4jeQTCnYh4bOUg669YERe-s'
# self._test() # self._test()
# time.sleep(random.randint(3,5)) # time.sleep(random.randint(3,5))
...@@ -64,9 +86,9 @@ class Reese84ByPass(object): ...@@ -64,9 +86,9 @@ class Reese84ByPass(object):
def _init(self): def _init(self):
t1 = time.time() t1 = time.time()
url = "https://beta.makeabooking.flyscoot.com/Book/Flight?culture=en-SG&type=oneway&dst1=HKG&ast1=SIN&dst2=SIN&ast2=HKG&dd=2023-11-10&rd=null&adt=1&chd=0&inf=0" url = "https://beta.makeabooking.transavia.com/Book/Flight?culture=en-SG&type=oneway&dst1=HKG&ast1=SIN&dst2=SIN&ast2=HKG&dd=2023-11-10&rd=null&adt=1&chd=0&inf=0"
response = self._session.get(url, headers={ response = self._session.get(url, headers={
"Host": "www.flyscoot.com", "Host": "www.transavia.com",
"pragma": "no-cache", "pragma": "no-cache",
"cache-control": "no-cache", "cache-control": "no-cache",
"sec-ch-ua-mobile": "?0", "sec-ch-ua-mobile": "?0",
...@@ -86,23 +108,22 @@ class Reese84ByPass(object): ...@@ -86,23 +108,22 @@ class Reese84ByPass(object):
self._session.cookies.clear() self._session.cookies.clear()
t1 = time.time() t1 = time.time()
r1 = self._session.get( r1 = self._session.get(
'https://booking.flyscoot.com/xildrong-in-I-confusing-freene-of-Duncannothin-b', headers={ 'https://www.transavia.com/rgeonseart-Cawdor-mine-no-our-selfe-Wife-comfort', headers={
"authority": "booking.flyscoot.com", "authority": "www.transavia.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": "*/*",
"accept-language": "en,en-US;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6", "accept-language": "en,en-US;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
"cache-control": "no-cache", "cache-control": "no-cache",
"pragma": "no-cache", "pragma": "no-cache",
"sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"", "referer": "https://www.transavia.com/",
"sec-ch-ua-mobile": "?0", "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
"sec-ch-ua-platform": "\"macOS\"", "sec-ch-ua-mobile": "?0",
"sec-fetch-dest": "document", "sec-ch-ua-platform": "\"macOS\"",
"sec-fetch-mode": "navigate", "sec-fetch-dest": "script",
"sec-fetch-site": "none", "sec-fetch-mode": "no-cors",
"sec-fetch-user": "?1", "sec-fetch-site": "same-origin",
"upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.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/120.0.0.0 Safari/537.36" })
}) self.log.log('REQU', f'jsURL: {r1.url}')
self.log.log('REQU', f'jsURL: https://booking.flyscoot.com/xildrong-in-I-confusing-freene-of-Duncannothin-b')
self.log.log('REQU', f'JSURL: code:{r1.status_code} cost:{(time.time() - t1):.3f}s') self.log.log('REQU', f'JSURL: code:{r1.status_code} cost:{(time.time() - t1):.3f}s')
cache_md5 = md5(r1.text) cache_md5 = md5(r1.text)
if self._cache_md5 != cache_md5: if self._cache_md5 != cache_md5:
...@@ -127,15 +148,16 @@ class Reese84ByPass(object): ...@@ -127,15 +148,16 @@ class Reese84ByPass(object):
# print(len(data['solution']['interrogation']['p'])) # print(len(data['solution']['interrogation']['p']))
t3 = time.time() t3 = time.time()
url = "https://booking.flyscoot.com/xildrong-in-I-confusing-freene-of-Duncannothin-b?d=booking.flyscoot.com" url = "https://www.transavia.com/rgeonseart-Cawdor-mine-no-our-selfe-Wife-comfort?d=www.transavia.com"
response = self._session.post(url, headers={ response = self._session.post(url, headers={
"authority": "booking.flyscoot.com", "authority": "www.transavia.com",
"accept": "application/json; charset=utf-8", "accept": "application/json; charset=utf-8",
"accept-language": "en", "accept-language": "en,en-US;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
"cache-control": "no-cache", "cache-control": "no-cache",
"content-type": "text/plain; charset=utf-8", "content-type": "text/plain; charset=utf-8",
"origin": "https://booking.flyscoot.com", "origin": "https://www.transavia.com",
"pragma": "no-cache", "pragma": "no-cache",
"referer": "https://www.transavia.com/",
"sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"", "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
"sec-ch-ua-mobile": "?0", "sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"macOS\"", "sec-ch-ua-platform": "\"macOS\"",
...@@ -157,7 +179,7 @@ class Reese84ByPass(object): ...@@ -157,7 +179,7 @@ class Reese84ByPass(object):
t1 = time.time() t1 = time.time()
headers = { headers = {
"Host": "ibe.api.flyscoot.com", "Host": "ibe.api.transavia.com",
"pragma": "no-cache", "pragma": "no-cache",
"cache-control": "no-cache", "cache-control": "no-cache",
"sec-ch-ua": "\"Google Chrome\";v=\"120\", \"Not;A=Brand\";v=\"8\", \"Chromium\";v=\"120\"", "sec-ch-ua": "\"Google Chrome\";v=\"120\", \"Not;A=Brand\";v=\"8\", \"Chromium\";v=\"120\"",
...@@ -170,13 +192,13 @@ class Reese84ByPass(object): ...@@ -170,13 +192,13 @@ class Reese84ByPass(object):
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.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/120.0.0.0 Safari/537.36",
"x-scoot-appsource": "IBE-WEB", "x-scoot-appsource": "IBE-WEB",
"sec-ch-ua-platform": "\"macOS\"", "sec-ch-ua-platform": "\"macOS\"",
"origin": "https://beta.makeabooking.flyscoot.com", "origin": "https://beta.makeabooking.transavia.com",
"sec-fetch-site": "same-site", "sec-fetch-site": "same-site",
"sec-fetch-mode": "cors", "sec-fetch-mode": "cors",
"sec-fetch-dest": "empty", "sec-fetch-dest": "empty",
"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,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6"
} }
url = "https://booking.api.flyscoot.com/v1/account/anonymous" url = "https://booking.api.transavia.com/v1/account/anonymous"
response = self._session.get(url, headers=headers) response = self._session.get(url, headers=headers)
print(response.text) print(response.text)
self._token = response.json()['data']['accessToken'] self._token = response.json()['data']['accessToken']
...@@ -195,11 +217,11 @@ class Reese84ByPass(object): ...@@ -195,11 +217,11 @@ class Reese84ByPass(object):
"sec-ch-ua-mobile": "?0", "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/120.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/120.0.0.0 Safari/537.36',
"sec-ch-ua-platform": "\"macOS\"", "sec-ch-ua-platform": "\"macOS\"",
"Origin": "https://www.flyscoot.com", "Origin": "https://www.transavia.com",
"Sec-Fetch-Site": "same-site", "Sec-Fetch-Site": "same-site",
"Sec-Fetch-Mode": "cors", "Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty", "Sec-Fetch-Dest": "empty",
"Referer": "https://www.flyscoot.com/", "Referer": "https://www.transavia.com/",
"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,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
} }
url = "https://apigw.volaris.com/prod/api/session" url = "https://apigw.volaris.com/prod/api/session"
...@@ -208,56 +230,29 @@ class Reese84ByPass(object): ...@@ -208,56 +230,29 @@ class Reese84ByPass(object):
def _get_cookie(self): def _get_cookie(self):
headers = { return self.add_header, self._session.cookies.items()
"authority": "booking.api.flyscoot.com",
"accept": "application/json, text/plain, */*",
"accept-language": "en,en-US;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
"authorization": self._token,
"cache-control": "no-cache",
"content-type": "application/json",
"origin": "https://booking.flyscoot.com",
"pragma": "no-cache",
"sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
"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/120.0.0.0 Safari/537.36"
}
return headers, self._session.cookies.items()
def _test(self): def _test(self):
url = "https://www.transavia.com/en-UK/book-a-flight/flights/multidayavailability/"
headers = { data = {
"authority": "booking.api.flyscoot.com", "selectPassengersCount.AdultCount": "1",
"accept": "application/json, text/plain, */*", "selectPassengersCount.ChildCount": "0",
"accept-language": "en,en-US;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6", "selectPassengersCount.InfantCount": "0",
"authorization": self._token, "routeSelection.DepartureStation": "EDI",
"cache-control": "no-cache", "routeSelection.ArrivalStation": "ORY",
"content-type": "application/json", "dateSelection.OutboundDate.Day": "28",
"origin": "https://booking.flyscoot.com", "dateSelection.OutboundDate.Month": "7",
"pragma": "no-cache", "dateSelection.OutboundDate.Year": "2024",
"sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"", "dateSelection.InboundDate.Day": "",
"sec-ch-ua-mobile": "?0", "dateSelection.InboundDate.Month": "",
"sec-ch-ua-platform": "\"macOS\"", "dateSelection.InboundDate.Year": "",
"sec-fetch-dest": "empty", "dateSelection.IsReturnFlight": "false",
"sec-fetch-mode": "cors", "flyingBlueSearch.FlyingBlueSearch": "false",
"sec-fetch-site": "same-site", "__RequestVerificationToken": "gaJbCS51MZCLCRv19hjGGBQP5BacZ8FkSpd3h5TNgRXg2bYzL9bjsk3uaGFmLh9mBPlsx9YN1nLrMvij0VH8-HgDG2GbHOzAx9AoIgMFcIY1"
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
} }
url = "https://booking.api.flyscoot.com/flights/availability"
data = {"flightCriteria": [{"origin": "SIN", "destination": "ADL", "departureDate": "2024-07-30"}],
"passengerCriteria": {"adult": 1, "child": 0, "infant": 0}, "currencyCode": "SGD", "promoCode": "",
"salesCode": None,
"flightFare": {"fareType": [], "productClass": ["E1", "E2", "E3", "E4", "E5", "J", "P4", "J4"],
"classOfService": [], "maxConnections": 20},
"sortingOptions": ["LowestFare", "ShortestTravelTime", "EarliestArrival"], "cultureCode": "en-sg",
"bundleControlFilter": 2, "ssrs": ["FLXO", "FLXM", "FLXR"]}
data = json.dumps(data, separators=(',', ':'))
response = self._session.post(url, headers=headers, data=data) response = self._session.post(url, headers=self.add_header, data=data)
print(response.text) print(response.text)
self.log.debug(f"resp {'Flight Search Results' in response.text}") self.log.debug(f"resp {'Flight Search Results' in response.text}")
print(self._get_cookie()) print(self._get_cookie())
...@@ -268,11 +263,11 @@ if __name__ == '__main__': ...@@ -268,11 +263,11 @@ if __name__ == '__main__':
# 'http': "http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000", # 'http': "http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000",
# 'https': "http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000", # 'https': "http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000",
# } # }
r = Reese84ByPass('https://www.flyscoot.com/', r = Reese84ByPass('https://www.transavia.com/',
'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000') 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000')
# r = Reese84ByPass('https://www.flyscoot.com/', 'http://user-uni007-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600') # r = Reese84ByPass('https://www.transavia.com/', 'http://user-uni007-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600')
r = Reese84ByPass('https://www.flyscoot.com/', 'http://127.0.0.1:8890') r = Reese84ByPass('https://www.transavia.com/', 'http://127.0.0.1:8890')
# r = Reese84ByPass('https://www.flyscoot.com/', f'http://uni00001_custom_zone_US_sid_{random.randint(67336718, 67336728)}_time_5:q39CEBTs5A@us.foxyip.com:7778') # r = Reese84ByPass('https://www.transavia.com/', f'http://uni00001_custom_zone_US_sid_{random.randint(67336718, 67336728)}_time_5:q39CEBTs5A@us.foxyip.com:7778')
# while True: # while True:
r.start() r.start()
for i in range(10): for i in range(10):
......
...@@ -1315,7 +1315,7 @@ const dom = new JSDOM( ...@@ -1315,7 +1315,7 @@ const dom = new JSDOM(
' <!DOCTYPE html> <html lang="en" en-sg IR> <head><script src="/xildrong-in-I-confusing-freene-of-Duncannothin-b" async></script> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta charset="utf-8" /><script type="text/html" id="sf-tracking-consent-manager">\n' + ' <!DOCTYPE html> <html lang="en" en-sg IR> <head><script src="/xildrong-in-I-confusing-freene-of-Duncannothin-b" async></script> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta charset="utf-8" /><script type="text/html" id="sf-tracking-consent-manager">\n' +
'\t<div id="tracking-consent-dialog" style="display:none;" class="hidden"> \n' + '\t<div id="tracking-consent-dialog" style="display:none;" class="hidden"> \n' +
'</div>\n' + '</div>\n' +
'</script><script type="text/javascript" src="/WebResource.axd?d=DzHrpQl5URXarFHAtrmzFiVGCp9k3PJKAh3Au6tULwI3z2EKZIWdZjHIKorXmVWtqfboHFuCdj6oa1XUJAP5fA3f4Iqu4x90S3aDJ9UC6y8T1XJIHmjzt0iedHwMeb8hvKIBNUtZpwwmosLi2qggI96FCNOD3Bf3q9GkuZENu9ZjYmUuSvaKCV9uZxDDJ8q_0&amp;t=637885997880000000">\n' + '</script><script type="text/javascript" src="/rgeonseart-Cawdor-mine-no-our-selfe-Wife-comfort">\n' +
'\n' + '\n' +
'</script> <link href="https://cdn.flyscoot.com/prod/images/default-source/assets/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <title>\n' + '</script> <link href="https://cdn.flyscoot.com/prod/images/default-source/assets/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <title>\n' +
'\tBook Cheap Flights &amp; Airline Tickets Online for Your Next Holiday\n' + '\tBook Cheap Flights &amp; Airline Tickets Online for Your Next Holiday\n' +
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