Описание проекта
Не менее важно то, что происходит после загрузки страницы. Сырой HTML нужно превращать в проверенные и очищенные от дублей записи, а цены, даты и телефоны — приводить к единым форматам ещё до попадания в базу. Хранить имеет смысл только новое или изменившееся, поэтому нужна инкрементальная логика. Сверх этого нам важна операционная прозрачность: дашборд с успешностью запусков и объёмами, уведомления при сбоях и аномалиях в данных, а также воспроизводимый деплой, который можно поднять с нуля без устных легенд.
Конкретные целевые сайты конфиденциальны и передаются по NDA после согласования условий. В отклике напишите, с какими антибот-защитами вы уже сталкивались и как удерживали парсер стабильным во времени. Полный объём работ ниже.
1. Архитектура скрейпера
— Scrapy + ротация прокси и пула User-Agent
— Playwright/Selenium для JS-сайтов
— Обход CAPTCHA (2captcha / anti-captcha)
— Rate limiting, соблюдение robots.txt
2. Пайплайн данных
— HTML в структурированный JSON
— Валидация и дедупликация
— Нормализация цен, дат, телефонов
— Хранение в PostgreSQL с проектированием схемы
— Инкрементальные обновления (только новые/изменённые записи)
3. Мониторинг и эксплуатация
— Дашборд: успешность запусков, количество записей, ошибки
— Уведомления в Slack/email при сбоях
— Деплой через Docker Compose
— Cron-расписание с логикой повторов
Целевые сайты
— Конфиденциально (NDA) — детали после соглашения
— Смесь статических и SPA-сайтов
Результат
— Исходный код с тестами
— Docker Compose конфигурация
— Миграции схемы БД
— Runbook и настройка мониторинга