Задача:
Нужно разработать парсеры цен на металлопрокат. Источники данных — сайты поставщиков, где прайсы представлены в разных форматах: HTML-страницы, XLSX, CSV.
Примеры сайтов/источников:
mc.ru — таблицы в HTML
evraz.com — прайсы в Excel/CSV.
chelmet.ru — HTML-страницы с таблицами цен.
(точные ссылки и список будут расширяться — в итоге около 25–35 источников)
Требования:
Для каждого сайта/файла — отдельные кастомные настройки (селекторы, маппинг колонок, регулярки для размеров/ГОСТ).
Атрибуты для сбора:
позиция (тип металлопроката),
размер (диаметр, толщина×ширина×длина),
цена (с валидацией),
гео (город/регион) обычно 1 гео = 1 файл на сайте
ГОСТ (опционально).
Результат парсинга должен сохраняться в PostgreSQL (схема: сырые данные, нормализованные данные, история цен).
Поддержка расписания (ежедневный запуск).
Стек (предпочтительно):
Python (httpx/requests, pandas, lxml/parsel/openpyxl), PostgreSQL, Docker.
Объем работ:
На старте — 1 источник (MVP), затем масштабирование до 25–35 источников по такому же шаблону (через конфиги). Написать две цены.
Формат работы:
Код + конфиги + инструкции по добавлению новых источников.
Git-репозиторий или архив с проектом.
Ожидаемый результат:
Рабочий ETL-пайплайн, который автоматически собирает цены по всем источникам и сохраняет их в БД.