• Парсер каталога и цен B2B-поставщика с защитой (Cloudflare) и выгрузкой в PostgreSQL и CSV

    11 годин тому
    • Бажаний бюджет до 420.1 USD
    • Очікує виконавця...
  • Исходная ситуация - есть B2B-сайт поставщика автозапчастей (закрытый каталог с личным кабинетом) и внутренний прайс-лист в нашей ERP устаревает. Ручная сверка занимает 6-8 часов в неделю. У поставщика нет API, карточки товаров и остатки доступны только через веб-интерфейс после логина. На сайте включены антибот-меры (Cloudflare, динамические токены, частичная подгрузка через XHR). Нужно автоматизировать сбор данных и обновление нашей базы для последующего импорта в ERP.

    Техническая среда - Linux сервер (Ubuntu 22.04), Docker доступен. Предпочтительный стек - Python 3.11, Playwright или Selenium + запросы к XHR, PostgreSQL 14. Доступы - тестовый аккаунт к сайту, отдельная схема в Postgres, SSH на сервер. Прокси предоставим при необходимости, но важно минимизировать нагрузку на сайт.

    Что должно получиться в итоге - репозиторий с кодом и Docker-окружением, который по расписанию собирает каталог и цены, сохраняет в PostgreSQL и дополнительно делает ежедневную выгрузку CSV. Данные нужны по всем товарам в выбранных разделах каталога.

    Требования к сбору данных - нужно извлекать SKU/артикул поставщика, название, бренд, категория/путь в каталоге, цена (с валютой), доступное количество/остаток, срок поставки если указан, ссылка на карточку, дата/время парсинга. Если в карточке есть несколько предложений/складов - сохранять по каждому предложению отдельной строкой с привязкой к SKU.

    Ограничения - не более 1 запроса в секунду в среднем на домен, обязательные случайные задержки, корректная обработка банов/капч без бесконечных ретраев, хранение логина/пароля только через переменные окружения/секреты, без жестко прошитых кредов. Парсер должен быть устойчив к частичным сбоям сети и уметь продолжать с места остановки.

    Этапы - 1) анализ сайта и выявление XHR-эндпоинтов/токенов, 2) разработка модуля авторизации и обновления сессии, 3) обход каталога с очередью URL и дедупликацией, 4) нормализация и запись в PostgreSQL (upsert), 5) генерация CSV и простая метрика качества данных, 6) упаковка в Docker + инструкция запуска и пример cron.

    Критерии приемки (измеримые) - 1) полный проход по каталогу из 3 выбранных разделов дает не менее 95% карточек от числа, которое показывает сайт в фильтре/счетчике раздела (допускается расхождение из-за временно недоступных товаров), 2) повторный запуск в течение суток обновляет только изменившиеся записи и завершается без ручного вмешательства, 3) структура таблиц PostgreSQL и CSV соответствует согласованной схеме, 4) в логах есть сводка - сколько карточек обработано, сколько ошибок по типам, сколько позиций обновлено, 5) запуск на сервере через Docker Compose одной командой, 6) средняя нагрузка не превышает лимит и нет массовых 403/429 при нормальном режиме.

    Что предоставим - список разделов каталога, тестовый доступ, сервер, Postgres, пример нужного формата CSV для ERP (колонки и разделитель).
Ваша пропозиція

Ви ще не залишили пропозицію до цього замовлення.
Натисніть «Запропонувати послугу», щоб надіслати свою пропозицію.

Потрібне схоже завдання?

Якщо завдання схоже на ваше, можна переглянути готові послуги в категорії або створити власне завдання з потрібним бюджетом, строками та вимогами.

Завдання «Парсер каталога и цен B2B-поставщика с защитой (Cloudflare) и выгрузкой в PostgreSQL и CSV» можна використати як орієнтир для свого брифа: що потрібно зробити, який результат потрібен і який бюджет вказати.