@artur1214

Почему json от сайта работает только в operagx?

Мне понадобилось спарсить каталог с сайта instacart.ca, если там зарегестрироваться, вам станет доступна возможность пользоваться api, что, согласитесь, гораздо удобнее чем парсить все с html, но есть проблема, я использую браузер OperaGX, и при переходе сюда:
https://www.instacart.ca/v3/retailers/462/module_d... (работает только если вы залогинились на этом сайте),
я получаю json объект, в котором есть информация о 30 товарах. однако если в python, используя requests, добавить к запросу куки из оперы (чтоб сайт думал, что я залогинился) возвращается объект где есть информация только о 25 объектах (некоторые пропущены), я подумал, что что-то не так в python.
Однако я заметил, что в google chrome и в обычной opera результат аналогичен тому, который в питоне, отсюда у меня вопрос к знающим людям: с чем это может быть связано, и как это лечить?
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Andrey_Dolg
Очень обрывочная информация. Однако причин такому поведению может быть много и все они будут на стороне сервера. В вашем случае если api всё же работает а значит поле куки читается сервером то вариантов несколько.
1) Попробуйте скопировать все headers для requests аналогичные OperaGX.
2) Посмотрите что это за 5 пропавших товаров, а то уж очень похоже на систему рекомендаций или рекламу. У них явно должны быть какие-то особенности.
Но в целом ничего не запрещает серверу анализировать с какого браузера пришел запрос и отвечать на каждый по своему. Так же советую поиграться с параметром &per=30 возможно есть ещё доступные значения или прямое чтение(видал как то почти прямой sql запрос в url XD).

UPD
Если бы не аналогичные результаты в Сhrome то я бы подумал о фальшивке. Но в целом в запросах нет никакой магии это обычная пересылка текста с анализом полученных полей.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы