@s1zen

Как сделать post запрос?

https://youla.ru/ Если листать обьявления то можно увидеть api-gw.youla.io/federation/graphql

Такой же вопрос, но возвращает ошибку: https://ru.stackoverflow.com/questions/1378105/%D0...?

headers = {
    'Host': 'api-gw.youla.io',
    'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Yandex";v="22"',
    'x-app-id': 'web/3',
    'sec-ch-ua-mobile': '?0',
    'x-uid': '61fbadfb8616a',
    'authorization': '',
    'content-type': 'application/json',
    'x-youla-splits': '8a=7|8b=3|8c=0|8m=0|8v=0|8z=0|16a=0|16b=0|64a=4|64b=0|100a=57|100b=99|100c=0|100d=0|100m=0',
    'accept': '*/*',
    'uid': '61fbadfb8616a',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.116 YaBrowser/22.1.1.1544 Yowser/2.5 Safari/537.36',
    'appId': 'web/3',
    'sec-ch-ua-platform': '"Windows"',
    'Origin': 'https://youla.ru',
    'Sec-Fetch-Site': 'cross-site',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Dest': 'empty',
    'Referer': 'https://youla.ru/all/zhenskaya-odezhda',
    'Accept-Language': 'ru,en;q=0.9',
}

data = {
	"operationName": "catalogProductsBoard",
	"variables":
	{
		"sort": "DEFAULT",
		"attributes": [
		{
			"slug": "categories",
			"value": [""],
			"from": None,
			"to": None
		}],
		"datePublished": None,
		"location":
		{
			"latitude": None,
			"longitude": None,
			"city": "576d0612d53f3d80945f8b5d",
			"distanceMax": None
		},
		"search": "",
		"cursor": "{\"page\":1,\"totalProductsCount\":60,\"totalPremiumProductsCount\":4,\"dateUpdatedTo\":1651722922}"
	},
	"extensions":
	{
		"persistedQuery":
		{
			"version": 1,
			"sha256Hash": "bf7a22ef077a537ba99d2fb892ccc0da895c8454ed70358c0c7a18f67c84517f"
		}
	}
}

response = requests.post("https://api-gw.youla.io/federation/graphql", data=data, headers=headers).json()
print(response)
  • Вопрос задан
  • 230 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Половина хедеров просто не нужна

Открываем браузер, находим этот запрос. Открываем его нагрузку, жмем "view source", копируем - вставляем в код. Заменяем JS null на питоновский None. Отправляем как JSON. Обычная копипаста, даже править ничего не нужно (кроме null)

import requests

headers = {
    'x-uid': '61fbadfb8616a'
}

data = {
  "operationName": "catalogProductsBoard",
  "variables":
  {
    "sort": "DEFAULT",
    "attributes": [
    {
      "slug": "categories",
      "value": [""],
      "from": None,
      "to": None
    }],
    "datePublished": None,
    "location":
    {
      "latitude": None,
      "longitude": None,
      "city": "576d0612d53f3d80945f8b5d",
      "distanceMax": None
    },
    "search": "",
    "cursor": "{\"page\":1,\"totalProductsCount\":60,\"totalPremiumProductsCount\":4,\"dateUpdatedTo\":1651722922}"
  },
  "extensions":
  {
    "persistedQuery":
    {
      "version": 1,
      "sha256Hash": "bf7a22ef077a537ba99d2fb892ccc0da895c8454ed70358c0c7a18f67c84517f"
    }
  }
}

response = requests.post("https://api-gw.youla.io/federation/graphql", json=data, headers=headers).json()
print(response)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы