Сайт отвечает ошибкой POST requests
Я писала парсер на https://megamarket.ru/. Пытаюсь собирать данные по категориям в магазинах через библиотеку requsts. Я создала корректный запрос через curlconvertor, но в ответ сайт выдаёт ошибку:
{
"error": "Произошла ошибка. Попробуйте отключить VPN или подключиться к другой сети. Если проблема повторяется, напишите нам в чат или позвоните 8 800 600-08-88",
"code": 7,
"message": "Произошла ошибка. Попробуйте отключить VPN или подключиться к другой сети. Если проблема повторяется, напишите нам в чат или позвоните 8 800 600-08-88",
"details": [],
"datetime": "2023-12-17 16:35:36 +0000",
"ip": "...",
"id": "..."
}
Сам запрос выгляджит так:
response_mefgakatalog = requests.post(
'https://megamarket.ru/api/mobile/v1/catalogService/catalog/search?#page=1',
cookies=cookies,
headers=headers,
json=json_data,
)
Можно ли что-то сделать в таком случае, или из решений остаётся только selenium?
UPD: Так же я не нашла в запросе никакой информации про то, какие товары я хочу получить от сервера (ни магазина, ни категории). Единственное, что может этим быть 'collectionId': '12012'. Запрос я брала с сайта: https://megamarket.ru/shop/megamarket-spb/catalog/kompyutery-i-komplektuyushie/#?page=1
Ответы (1 шт):
Автор решения: de33a
→ Ссылка
https://habr.com/ru/articles/799569/ Исправленный код:
session = tls_client.Session(
client_identifier="chrome112",
random_tls_extension_order=True
)
response = session.post(
'https://megamarket.ru/api/mobile/v1/catalogService/catalog/search',
cookies=cookies,
headers=headers,
json=json_data,
).json()