Сайт отвечает ошибкой 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()
→ Ссылка