Я пытаюсь получить Цены и доступность информации от Homeaway.com для недвижимости. У них есть API publi c для получения этой информации. Если мы проверяем эту страницу правильно, мы получим API. В то время как я делаю POST-запрос через POSTMAN, он выдает данные в правильном формате, но с тем же кодом, когда я вставляю из Postman в Jupyter Notebook ошибку 403. Я попытался использовать cURL и Python 3.
. Я думаю, что есть проблема с правильным форматированием для элемента полезной нагрузки.
Это код, который я получаю от POSTMAN для Python Модуль запроса -
import requests
url = "https://www.homeaway.co.uk/pdp/graphql"
payload = "{\"query\":\"\\n query priceDetails($createTravelerCheckoutRequest: CreateTravelerCheckoutRequest) {\\n priceDetails(createTravelerCheckoutRequest: $createTravelerCheckoutRequest) {\\n notes {\\n description\\n }\\n totals {\\n title\\n amount\\n tooltip\\n subItems {\\n title\\n }\\n }\\n checkoutUrl\\n instantBooking\\n dueNow {\\n title\\n amount\\n tooltips {\\n title\\n amount\\n tooltip\\n }\\n }\\n payments {\\n title\\n amount\\n paidText\\n infoText\\n status\\n viewUrl\\n }\\n averageNightlies {\\n perNightCost {\\n currency\\n amount\\n localized\\n }\\n type\\n }\\n edapEventJson\\n edapQuoteSuccess\\n edapPriceQuotePresented\\n lineItems {\\n title\\n amount\\n mixedCurrencyDisclaimer\\n type\\n tooltip\\n subItems {\\n title\\n amount\\n type\\n tooltip\\n }\\n }\\n }\\n }\\n\",\"variables\":{\"createTravelerCheckoutRequest\":{\"unit\":\"/units/0001/06a12c46-a89b-4620-86f2-7007e2955d90\",\"arrivalDate\":\"2020-03-13\",\"departureDate\":\"2020-03-18\",\"children\":0,\"adults\":2,\"pets\":0,\"listingRef\":\"611.10570866.5597723\",\"currency\":\"USD\"}},\"operation\":\"graphql_get_pricing_quote\"}"
headers = {
'origin': "https://www.homeaway.co.uk",
'x-homeaway-site': "homeaway_uk",
'user-agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36",
'x-csrf-jwt-pdp': "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbiI6IjU5N2QyZGJmYjg2MmFlZjM2Y2IzMTMxMGNkZDZlMTlkZTE0MTYwOWViYTEzYWQ1MWYzMjU2NTU5MzVlYWE4ZjRjMTZhYmM2YjY1YmVlOWQ3NzM2MDE2Njg0YTc3OGE2OTg1Nzg4M2IzYWI0YTUzZmU0N2IyNWU1YjczN2E5MzRkMTMxOWE4MjJjYTlhMzg2MTM2ZGJlODQ4N2Y2YjM3NTU2ODcxYjIwMWM3ZDYxYmNjYWFhMzM4NjYwNWMwMmU1NDJjNmQxN2NhN2FhN2VjYjNjMTI4OTcxNzI3OTEyZjg2YmQ1YzQzNTRjZTYxYTc2YTE5NzMwNzMyNGQ4NzRhYjNhODRkOWI1NDc4ZmU1ODI1NzU4YTU0MjM5ZTZmMjQzYyIsImlhdCI6MTU4MzE4MTM0MywiZXhwIjoxNTgzNzg2MTQzfQ.owkOAY8AtuQM6ghYro4OdiVSEy7uTT-UXa0vXbIoOcM",
'sec-fetch-dest': "empty",
'x-homeaway-displaylocale': "en_GB",
'accept': "*/*",
'content-type': "application/json",
'cache-control': "no-cache",
'postman-token': "a0782281-d7ef-96db-8c54-08f250e8ac86"
}
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
Элемент полезной нагрузки для запроса -
{"query":"query priceDetails($createTravelerCheckoutRequest: CreateTravelerCheckoutRequest) {priceDetails(createTravelerCheckoutRequest: $createTravelerCheckoutRequest) {notes {description}totals{title amount tooltip subItems {title}}checkoutUrl instantBooking dueNow {title amount tooltips {title amount tooltip}} payments {title amount paidText infoText status viewUrl}averageNightlies {perNightCost {currency amount localized } type}edapEventJson edapQuoteSuccess edapPriceQuotePresented lineItems { title amount mixedCurrencyDisclaimer type tooltip subItems { title amount type tooltip }}}}",
"variables":{"createTravelerCheckoutRequest":
{"unit":"/units/0001/de2ef943-c782-4179-a157-060ed12273c4","arrivalDate":"2020-03-13","departureDate":"2020-03-18","children":0,"adults":2,"pets":0,"listingRef":"611.10579173.5606075","currency":"EUR"}},
"operation":"graphql_get_pricing_quote"}
Заголовки для запроса -
Origin:https://www.homeaway.co.uk
x-homeaway-site:homeaway_uk
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36
x-csrf-jwt-pdp:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbiI6IjU5N2QyZGJmYjg2MmFlZjM2Y2IzMTMxMGNkZDZlMTlkZTE0MTYwOWViYTEzYWQ1MWYzMjU2NTU5MzVlYWE4ZjRjMTZhYmM2YjY1YmVlOWQ3NzM2MDE2Njg0YTc3OGE2OTg1Nzg4M2IzYWI0YTUzZmU0N2IyNWU1YjczN2E5MzRkMTMxOWE4MjJjYTlhMzg2MTM2ZGJlODQ4N2Y2YjM3NTU2ODcxYjIwMWM3ZDYxYmNjYWFhMzM4NjYwNWMwMmU1NDJjNmQxN2NhN2FhN2VjYjNjMTI4OTcxNzI3OTEyZjg2YmQ1YzQzNTRjZTYxYTc2YTE5NzMwNzMyNGQ4NzRhYjNhODRkOWI1NDc4ZmU1ODI1NzU4YTU0MjM5ZTZmMjQzYyIsImlhdCI6MTU4MzE4MTM0MywiZXhwIjoxNTgzNzg2MTQzfQ.owkOAY8AtuQM6ghYro4OdiVSEy7uTT-UXa0vXbIoOcM
Sec-Fetch-Dest:empty
X-HomeAway-DisplayLocale:en_GB
Accept:*/*
Content-Type:application/json
Тип запроса - POST
URL запроса - <"<a href="https://www.homeaway.co.uk/pdp/graphql" rel="nofollow noreferrer">https://www.homeaway.co.uk/pdp/graphql">
Ответ от ПОСТМАН -
"data": {
"priceDetails": {
"notes": [],
"totals": [
{
"title": "Total",
"amount": "US$1,222.85",
"tooltip": null,
"subItems": null
}
],
"checkoutUrl": "/td/tc/a/checkout/611.10570866.5597723?unitLink=/units/0001/06a12c46-a89b-4620-86f2-7007e2955d90&arrivalDate=03/13/2020&departureDate=03/18/2020&petIncluded=false&adultsCount=2&childrenCount=0&skipLogin=true",
"instantBooking": true,
"dueNow": [
{
"title": "Your payment is",
"amount": "US$1,222.85",
"tooltips": null
}
],
"payments": null,
"averageNightlies": [
{
"perNightCost": {
"currency": "USD",
"amount": 244.57,
"localized": "US$245"
},
"type": "TOTAL_TRIP"
},
{
"perNightCost": {
"currency": "USD",
"amount": 244.57,
"localized": "US$245"
},
"type": "BASE_RENT"
},
{
"perNightCost": {
"currency": "USD",
"amount": 244.57,
"localized": "US$245"
},
"type": "TOTAL_RENT"
}
],
"edapEventJson": "{\"eventstartdate\":\"2020-03-13\",\"eventenddate\":\"2020-03-18\",\"eventnumadults\":\"2\",\"eventnumchildren\":\"0\",\"eventcurrency\":\"USD\",\"unituuid\":\"06a12c46-a89b-4620-86f2-7007e2955d90\",\"eventpets\":\"false\",\"stramountrent\":\"US$1,222.85\",\"stramounttotal\":\"US$1,222.85\",\"stramountsubtotal\":\"US$1,222.85\"}",
"edapQuoteSuccess": "{\"displayquotetotal\":\"1222.85\",\"eventquoteamount\":\"1222.85\",\"fullorderrentalrate\":\"1222.85\",\"ordertax\":\"0\",\"rdd\":\"0\",\"pdp\":\"0\",\"servicefeeamount\":\"0\",\"numpartnerfees\":\"0\",\"partnerfeesamount\":\"0\",\"eventstartdate\":\"2020-03-13\",\"eventenddate\":\"2020-03-18\",\"eventnumadults\":\"2\",\"eventnumchildren\":\"0\",\"eventquotecurrency\":\"USD\"}",
"edapPriceQuotePresented": "{\"adult_count\":\"2\",\"child_count\":\"0\",\"display_quote_total\":\"1222.85\",\"display_quote_total_currency\":\"USD\",\"partner_fee_count\":null,\"partner_fee_total\":null,\"partner_fee_total_currency\":null,\"quote_tax\":null,\"quote_tax_currency\":null,\"refundable_damage_deposit\":null,\"refundable_damage_deposit_currency\":null,\"service_fee\":null,\"service_fee_currency\":null,\"stay_end_date\":\"2020-03-18\",\"stay_start_date\":\"2020-03-13\",\"with_pets\":\"false\",\"listing_id\":\"611.10570866.5597723\"}",
"lineItems": [
{
"title": "5 nights",
"amount": "US$1,222.85",
"mixedCurrencyDisclaimer": null,
"type": "RENT",
"tooltip": null,
"subItems": null
}
]
}
}
}
и ответ от Python Модуль запросов -
{"statusCode":403,"error":"Forbidden","message":"Forbidden"}
Может кто-нибудь, пожалуйста, помогите мне объяснить, почему это происходит ?? Как решить эту проблему.
Ссылка для проверки страницы - Ссылка домашней страницы . Пожалуйста, обратитесь к graphql запросам.