Всем доброго дня уважаемые знатоки.
Не получается решить проблему при написания парсера, возможно у вас получится решить данный вопрос.
Скрипт парсит отзывы по ссылке (
https://yandex.ru/maps/org/epilium_clinic/19126582...) по 50 шт за запрос, не получается решить задачу с переходом на другие страницы.
В ответе есть ссылка на отзывы, но по ней можно получить только первые 50 шт.
https://yandex.ru/maps/api/business/fetchReviews?a...
следующею порцию &page=2 получаем из ajax запроса, когда доходим до конца страницы.
Нужные нам параметры с токенами и т.д., хроняться в скрипте js , за исключением одного который мне и не удается найти s=1010565311.
Подскажите пожалуйста как можно получить след параметр &s=???, возможно есть какой то другой подход для получения всех отзывов.
Заранее спасибо!
import json
import requests
from bs4 import BeautifulSoup
headers = {"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0"}
session = requests.Session() # Создаем сессию
session.headers = headers # Передать заголовок в сессию
base_url = "https://yandex.ru/maps/org/epilium_clinic/191265823168/reviews"
def get_contents(response):
"""Собрать данные с страницы"""
soup = BeautifulSoup(response.text, "lxml")
content = soup.find("script", {"class": "config-view"}).contents
return json.loads(content[0])
def get_response(url):
"""- выполняем запрос"""
response = session.get(url=url)
if response.status_code != 200:
print("Произошла ошибка запроса код не 200")
return response
def get_params(data):
"""- собрать данные запроса"""
csrf_token = data.get("csrfToken")
company_id = data.get("query").get("orgpage").get("id")
session_id = data.get("counters").get("analytics").get("sessionId")
req_id = data.get("orgpagePreloadedResults").get("requestId")
s = ????
print(csrf_token)
print(company_id)
print(session_id)
print(req_id)
print(data)
def main():
response = get_response(base_url)
content = get_contents(response)
get_params(content)
if __name__ == '__main__':
main()