Андрей globall.dev zallord Сбер ID
Telegram-боты, Mini App, SaaS и веб-сервисы под ключ
Рейтинг
1 756
№ 571 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Москва
Опыт работы
7 лет
На сайте с
2019 года
Юридический статус
ИП
Freelance.Boutique
Премиум-сервис для лучших исполнителей

Парсер маркетплейса с выгрузкой в Google Таблицы и алертами в Telegram

Используемые навыки API Google Docker Python Telegram API Веб Сканирование

Описание

Продавец на маркетплейсе следил за ценами конкурентов руками и пришёл это выключить.
Каждое утро он открывал полсотни чужих карточек, переписывал цены в блокнот, к пятнице уже не помнил кто и когда подвинулся.
Просадку своей позиции в выдаче замечал по упавшим заказам - то-есть с опозданием в несколько дней.
Задача была поставлена так: раз в сутки видеть свежий срез по конкурентам и получать сигнал сразу, как только кто-то ушёл ниже его цены.
Просил ещё историю по дням, чтобы отличать разовую акцию у соседа от новой цены, которую тот держит вторую неделю.

Решение

Парсер на Python, запросы через httpx, разбор ответов через selectolax.
Собирает карточки по списку поисковых запросов и по прямым ссылкам на конкурентов - цена, остаток, позиция в выдаче, метка акции.
Пишет в Google Таблицу через gspread: лист сегодняшнего среза и лист истории, куда каждый прогон дописывает строку на товар.
Алерты уходят ботом на aiogram - цена конкурента ниже порога, товар пропал из наличия, своя карточка уехала ниже заданного места в выдаче. Порог задаётся колонкой в самой таблице, без правок кода.
Ломается в таких проектах всегда одно - блокировки и тихая смена вёрстки. Закрыл паузой со случайным разбросом между запросами, повтором с растущим интервалом на 429 и 5xx, пулом прокси с выбыванием мёртвых.
Так-же парсер не пишет нули в таблицу, когда ответ перестал совпадать с ожидаемой структурой - вместо записи уходит сообщение в бот, что разбор сломался и данные за прогон трогать нельзя.
Запуск по расписанию на VPS через systemd-таймер, состояние прогонов в SQLite, логи с ротацией.

Результат

Ручной обход карточек занимал около полутора часов в день, сейчас это одна вкладка с таблицей.
Сервис ведёт порядка 300 карточек в двух категориях, полный прогон занимает двадцать минут.
На демпинг соседа продавец реагирует в тот же день по алерту и сам решает, догонять цену или переждать.
История по дням дала неожиданное: часть конкурентов роняет цену только на выходные, гнаться за ними смысла нет.
Клиенту отданы исходники, доступ к таблице и инструкция на страницу - как добавить запрос, как поменять порог, как перезапустить парсер с консоли.
После сдачи подключили второй маркетплейс в тот же лист и добавили выгрузку истории отдельным файлом.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Магазин косметики в Telegram - подбор по типу кожи, состав и повторный заказ
Магазин косметики в Telegram - подбор по типу кожи, состав и повторный заказ
16
Веб-разработка и IT Единое окно переписки - Avito, WhatsApp, VK и почта в одном списке, таймер ответа и отчёты
Единое окно переписки - Avito, WhatsApp, VK и почта в одном списке, таймер ответа и отчёты
14
Веб-разработка и IT Бот обменника валют - курсы, заявка на обмен и подтверждение оператором
Бот обменника валют - курсы, заявка на обмен и подтверждение оператором
16
Веб-разработка и IT Магазин кроссовок в Telegram - размерная сетка, наличие и бронь пары
Магазин кроссовок в Telegram - размерная сетка, наличие и бронь пары
14