Разработка парсера сайтов для контроля остатков и цен
Создание системы для мониторинга остатков и цен товаров с сайтов:Зенон https://zenonline.ru/ Форда https://online.forda.ru/ Папиллонс https://tdppl.ru/ Ремэкс https://www.remex.ru/ Фабрикс https://fabreex.ru/
2. Функциональные требования
Сбор данных:
Парсер должен извлекать информацию о товарах, включая следующие обязательные поля:Артикул (ключ товара): уникальный идентификатор товара.
Единица измерения товара (например, шт., кг, л и т.д.).
Цена товара.
Наличие (количество на складе)(если доступно).
Валюта цены (если доступно).
Объемно-весовые характеристики товараВ случае отсутствия артикулов или единиц измерения, парсер должен генерировать уведомление об ошибке.
Формат данных:
Собранные данные должны сохраняться в формате JSON.
Структура JSON должна включать:product_code — артикул товара (ключ);name — название товара;price — цена;stock — количество на складе;unit — единица измерения;currency — валюта (если доступна).
Логирование:
Парсер должен вести логирование каждого запуска и ошибок. Уровень логирования должен быть настраиваемым, от базового (ошибки) до детального (все шаги парсинга).
Логи должны сохраняться в файлы с метками времени. Формат логов: log_competitor_YYYY-MM-DD_HH-MM.log.
Логи должны включать:
Время начала и окончания выполнения.
Количество успешно собранных товаров.
Ошибки при сборе данных (например, недоступность сайта или изменения структуры страниц).
Автоматизация:
Парсер должен быть оптимизирован для периодического запуска через Cron.
Логирование времени выполнения каждого запуска с фиксацией ошибок при запуске через Cron.
Обработка ошибок:
В случае отсутствия данных на странице или изменения структуры сайта, парсер должен зафиксировать ошибку и продолжить обработку следующих страниц.
Парсер должен корректно обрабатывать такие ошибки, как:Недоступность сайта (отсутствие соединения).
HTTP-ошибки (например, 404 или 500).
Изменение структуры страницы.
Производительность:
Парсер должен быть оптимизирован для работы с большими объемами данных (десятки тысяч товаров).
Должна быть реализована проверка и минимизация дублирования данных (например, при повторном запуске парсера).
Валидность данных:
Данные должны проверяться на корректность (например, цена не может быть отрицательной, наличие не может быть отрицательным числом и т.д.).3. Технические требования
Язык программирования:
Python 3.x
Форматы данных:
Входные данные: веб-страницы HTML.
Выходные данные: JSON (структурированный формат данных).
Среда выполнения:
Парсер должен быть совместим с Linux-системами для интеграции с Cron.
Оптимизация:
Парсер должен поддерживать многопоточную или асинхронную обработку данных для повышения производительности. Если это позволяет сайт конкурента4. Дополнительная информация
Каждый сайт -отдельное подзаданиеПарсер должен сохранять данные - запись CSV или записью в БД (postgres)