@Dizro

Как правильно подать GET запрос чтобы страница изменилась?

Я собираю отзывы с Яндекс.Карты и подаю запрос на изменение сортировки "По новизне". Могли бы вы объяснить, что я делаю не так? (Сортировка почему-то не применяется)
import requests
url = 'https://yandex.ru/maps/org/1581539215/reviews'
headers = {'ranking': 'by_time'}
r = requests.get(url, headers=headers)
print(r.text)
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Смотрите. Вот у вас задача - получить отзывы так, чтобы новые были сверху.
Вы дёргаете урл страницы с отзыывами и суёте в заголовки параметр с указанием сортировки. Но с чего вы вообще взяли, что АПИ принимает этот параметр через заголовки?

Как следовало бы вам решать эту проблему. Метод годный для многих случаев.
Нажимайте в хроме F12, выбирайте вкладку Networking и меняйте сортировку (мышкой на страничке). Смотрите, там появляется новый запрос, который страница делает через аякс не перезагружаясь полностью:
https://yandex.ru/maps/api/business/fetchReviews?a...
У вас запрос по конкретно этому урлу не выдаст данных, поскольку scrf-токен будет не актуальным и сессия не будет валидной. Чтобы получить токен и сессию вы можете сделать штатный гет запрос к странице. как вы делали в своём посте.
Имея необходимые токены вы можете делать запросы с параметром ajax и не придётся парсить страницу выуживая данные, они будут сразу в json.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
У вас URL на страницу с отзывами, а на скрине URL на yandex.ru/map/api. Скорее всего, даже если вы поменяете URL в программе, он вам не отдаст нужный ответ, необходимо смотреть, какие куки он при этом отдает.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 250 000 ₽
Сбер Москва
от 200 000 до 300 000 ₽
08 авг. 2022, в 05:48
15000 руб./за проект
08 авг. 2022, в 01:56
100 руб./в час
08 авг. 2022, в 00:26
1200 руб./в час