Проблема с парсером страницы python

Пытаюсь парсить названия продуктов на сайте магазина Перекрёсток: https://www.perekrestok.ru/cat/c/211/soki-nektary. Однако список спарсеных результатов пуст. Смотрел Network XHR аякса нету. Код:

import requests
from bs4 import BeautifulSoup as BS


r = requests.get("https://www.perekrestok.ru/cat/c/211/soki-nektary", headers={"content-type": "text"})
html = BS(r.content, 'html.parser')
print(html)
el = html.find_all("div", class_="product-card__title")
print(el)

Почему результаты не парсятся и как это исправить?


Ответы (1 шт):

Автор решения: Ivan Begtin

Там есть XHR запросы к https://www.perekrestok.ru/api/customer/1.4.0.0/catalog и к https://www.perekrestok.ru/api/customer/1.4.0.0/catalog/product/grouped-feed но для доступа к ним из веб страницы запросы идут с сессионным ключом который передаётся параметром заголовка Auth: Bearer <код ключа>,

Этот указывается в поле куке session в поле accessToken.

Поэтому нужно:

  1. Вначале с правильным User-Agent обратится к веб-странице и получить куку
  2. Извлечь токен из session.accessToken
  3. Использовать токен для передачи Auth: Bearer <значение assessToken> в headers запроса.
→ Ссылка