-3
Я пытаюсь очистить WizzAir для личного использования. Не могу понять, что не так с моим кодом. Это может быть неправильный объект полезной нагрузки или файлы cookie?Wizzair scraping
import requests
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36",
"Accept": "application/json, text/plain, */*",
"Accept-Encoding": "gzip, deflate, sdch, br",
"Accept-Language": "en-US,en;q=0.8,lt;q=0.6,ru;q=0.4",
"Origin": "https://wizzair.com",
"Referer": "https://wizzair.com/"
}
search_url = "https://wizzair.com/lt-LT/FlightSearch"
session = requests.Session()
r = session.get("https://be.wizzair.com/3.8.2/Api/asset/yellowRibbon", headers=headers, allow_redirects=False)
session_id = r.cookies["ASP.NET_SessionId"]
cookies = {
"ASP.NET_SessionId": session_id,
"HomePageSelector": "FlightSearch",
}
# wizz_url = "https://be.wizzair.com/3.8.2/Api/search/search"
wizz_url = "https://be.wizzair.com/3.8.2/Api/asset/farechart"
payload = {"flightList":[{"departureStation":"VNO","arrivalStation":"FCO","departureDate":"2017-02-20"}],"adultCount":1,"childCount":0,"infantCount":0,"wdc":True, "dayInterval":3}
r = session.post(url=wizz_url,data=payload,headers=headers, cookies=cookies)
print r.content
>>> {"validationCodes":["FlightCount_MustBe_OneOrTwo"]}
BTW: с помощью 'Session' вы можете установить заголовки в начале, используя' session.header', и вам не нужно устанавливать его в каждом запросе. И с 'Session' вам не нужно копировать файлы cookie с одного запроса на другой -' Session' делает это автоматически. – furas
BTW: попробуйте свои URL-адреса в браузере, и вы увидите, что 'https://be.wizzair.com/3.8.2/Api/asset/culture" 'не работает с GET. – furas
Извините, я проверил несколько URL-адресов на вкладке «Сеть» и оставил не тот, но, видимо, это не главная проблема. –