import requests
import json
import re
import time
def get_flight(parameter):
parameter = json.loads(parameter)
dep_code = parameter['dep_code']
arr_code = parameter['arr_code']
fromDate = parameter['fromDate']
urls = '{"systemId":52,"pollTag":0,"channelCount":0,"adultQuantity":1,"childQuantity":0,"babyQuantity":0,"supportBlack":true,"segmentList":[{"dCityIataCode":"BJS","aCityIataCode":"SHA","departDate":"2019-09-01"}],"rph":0,"hackersFlightNos":null}'
urls_dict = json.loads(urls)
urls_dict['segmentList'][0]['dCityIataCode'] = dep_code
urls_dict['segmentList'][0]['aCityIataCode'] = arr_code
urls_dict['segmentList'][0]['departDate'] = fromDate
urls = json.dumps(urls_dict)
url = 'https://flight-api.tuniu.com/wzt/flight/v1/listFlight?data=' + urls + '&_=1566269494525'
headers = {
'Sec-Fetch-Mode': "no-cors",
'Referer': "http://flight.tuniu.com/domestic/list/BJS_SHA_ST_1_0_0/?start=2019-09-01",
'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36",
'Accept': "*/*",
'Cache-Control': "no-cache",
'Host': "flight-api.tuniu.com",
'Cookie': "OLBSESSID=s467csiveuugroeca6n412lcr4; isLogined=true; p_phone_400=4007-999-999; p_phone_level=0; p_global_phone=%2B0086-25-8685-9999; tuniuuser_citycode=MjAw",
'Accept-Encoding': "gzip, deflate",
'Connection': "keep-alive",
'cache-control': "no-cache"
}
response = requests.request("GET", url, headers=headers, verify=False).json()
try:
query_id = response["data"]["queryId"]
except:
response = requests.request("GET", url, headers=headers, verify=False).json()
query_id = response["data"]["queryId"]
return query_id
def get_vendorid(queryId, parameter):
parameter = json.loads(parameter)
urls = '{"queryId":"Y2l0eUtleXM9QkpTLVNIQSxkZXBhcnR1cmVEYXRlPTIwMTktMDktMDEsZGVwYXJ0dXJlRGF0ZXM9MCxwYXNzZW5nZXJRdWFudGl0eT0xIzAjMCMwLHBoeXNpY2FsQ2FiaW49bnVsbA==","systemId":52,"flightNos":"HU7603"}'
urls_dict = json.loads(urls)
urls_dict['queryId'] = queryId
urls_dict["flightNos"] = parameter['data']["routing"]["fromSegments"][0]["flightNumber"]
urls = json.dumps(urls_dict)
url = 'https://flight-api.tuniu.com/wzt/flight/v2/multiCabinDetails?' + urls + '&_=1566268642667'
headers = {
'Sec-Fetch-Mode': "no-cors",
'Referer': "http://flight.tuniu.com/domestic/list/NKG_CGO_ST_1_0_0/?start=2019-08-21",
'User-Agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36",
'Accept': "*/*",
'Cache-Control': "no-cache",
'Postman-Token': "532e624f-0549-484c-bad8-091da95edb05,8aaccc88-bf02-43e4-ace3-bddae140cd87",
'Host': "flight-api.tuniu.com",
'Cookie': "tuniu_partner=MTAxLDAsLDlmZDgyZThjYTZkNGMwMTlmZTUyNzdlYjJmNTcxYzQ1",
'Accept-Encoding': "gzip, deflate",
'Connection': "keep-alive",
'cache-control': "no-cache"
}
response = requests.request("GET", url, headers=headers, verify=False).json()
return response
def get_price(parameter, vebdorId):
parameter = json.loads(parameter)
cabinPrices = vebdorId["data"]["productCategorys"][0]["cabinPrices"]
cobinList = []
for cabinPice in cabinPrices:
if cabinPice["priceJourneyCabinList"][0]["priceFlightCabinList"][0]["cabinCode"] == \
parameter["data"]["routing"]["fromSegments"][0]["cabin"] \
and cabinPice["priceJourneyCabinList"][0]["priceFlightCabinList"][0]["cabinClass"] == \
parameter["data"]["routing"]["fromSegments"][0]["cabinGrade"]:
cobinList.append(cabinPice)
return cobinList[0]
else:
return {
"aduDivideBaby": "未查询到相应座位"}
def check_price(parameter, queryId, vebdorId, cobin):
url = "https://flight-api.tuniu.com/wzt/flight/check/v1/checkPrice"
parameter = json.loads(parameter)
payload = '