Проблема с парсером страницы 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.
Поэтому нужно:
- Вначале с правильным User-Agent обратится к веб-странице и получить куку
- Извлечь токен из session.accessToken
- Использовать токен для передачи Auth: Bearer <значение assessToken> в headers запроса.