Парсер для сбора информации о товарах и ценах на веб-сайте https://lenta.com. Позволяет выбрать конкретный магазин и категорию товаров. Сбор данных требует обязательного использования прокси-сервера. Для сбора данных не используется html-разметка, только API сайта. Реализован в виде CLI утилиты без использования каких-либо графических инструментов.
API сайта использует авторизацию с помощью cookie qrator_jsid.
Срипт https://lenta.com/__qrator/qauth.js создает и отправляет на сервер
fingerprint окружения браузера. В ответ сервер устанавливает cookie qrator_jsid.
imho обход авторизации выходит за рамки задания.
Ручной способ получения cookie:
- Откройте браузер в режиме инкогнито.
- Откройте DevTool/Network.
- Зайдите на страницу https://lenta.com/
- Найдите последнее обращение к https://lenta.com/__qrator/validate
- Найдите заголовок ответа
Set-Cookie: qrator_jsid=177.... Вам нужно только значение (без имени, без времени жизни etc)
NOTE:
- Вы должны получить cookie c того-же ip-адреса, от которого будет работать парсер
- Время жизни cookie 20_000 сек (чуть больше 5.5 часов)
В консоли:
make all
# Экспортируйте переменную QRATOR_JSID со значением cookie `qrator_jsid`
export QRATOR_JSID='177***'
# Экспортируйте переменную PROXY
export PROXY='http://[<user>:<password>]<you-proxy-address>:<port>'
# Найдите нужный регион (например Санкт-Петербург)
bin/parser -show regions | grep 'Петербург'
# Получите магазин (например на Большевиков)
bin/parser -show stores -region 3 | grep 'Большевиков'
# Получите список подкатегорий (например Вино в магазине на Большевиков пр., 7к2)
bin/parser -show categories -store 3135 | grep 'Вино'
bin/parser -show categories -store 3135 | grep 22541
# Получите список красных вин
bin/parser -show products -store 3135 -category 22543 > store-3135-red-wine-22543.tsv && \
cat store-3135-red-wine-22543.tsv
# Получите список белых вин
bin/parser -show products -store 3135 -category 22544 > store-3135-white-wine-22544.tsv && \
cat store-3135-white-wine-22544.tsv
# Получите список розовых вин
bin/parser -show products -store 3135 -category 22545 > store-3135-pink-wine-22545.tsv && \
cat store-3135-pink-wine-22545.tsvПарсер генерирует правильные ссылки на товар, но URL не содержит информации о магазине. Это ограничение сайта. Вам нужно самостоятельно выбрать нужный магазин в браузере, чтобы получить актуальную страницу товара.