Задача клиента
Заказчик — крупный поставщик автозапчастей — хотел полностью автоматизировать наполнение своего интернет-магазина на WordPress товарами из официального каталога Polcar.com. Требования:
- Спарсить более 300 000 карточек деталей с полными характеристиками, таблицами применяемости, аналогами и сопутствующими товарами.
- Для каждой детали найти реальные изображения в Google/Yandex по оригинальному номеру.
- Автоматически создавать товары в WooCommerce через REST API с заполнением всех полей, галереи и SEO-данных.
Главные сложности и подводные камни
- Polcar.com полностью на JavaScript: без Selenium данные просто не отображаются.
- Многоуровневые вкладки с динамической подгрузкой таблиц — обычный requests/aiohttp не подходит.
- Жёсткая защита от ботов: частые блокировки по IP, капчи, ограничение количества запросов.
- WordPress-сайт заказчика падал при массовой загрузке (более 100 товаров одновременно) из-за слабого хостинга и отсутствия очереди задач.
- Необходимо было реализовать надёжное логирование, обработку дублей и возобновление после сбоев.
Принятые решения
- Selenium + невидимый режим для корректного извлечения всех вкладок и таблиц.
- Flask REST API как промежуточный сервер: парсер отправлял готовые JSON-пакеты, а WordPress забирал их по расписанию.
- Система именования файлов по номеру детали + защита от перезаписи через таймстамп.
- Поиск изображений по номеру детали через Google Custom Search JSON API + резервный парсинг Yandex.Картинок.
- Пакетная загрузка с задержками и retry-логикой, чтобы не убивать сайт клиента.
Результат и почему проект был оплачен полностью
Я успешно спарсил и передал клиенту более 47 000 карточек товаров с полными характеристиками, таблицами применяемости и найденными изображениями.
Был развёрнут рабочий API-сервер на Flask, который стабильно принимал и сохранял данные.
Клиент получил полностью рабочий инструмент, который он смог использовать на другом хостинге позже.
Проект был оплачен 100% несмотря на отказ от продолжения — потому что поставленная техническая задача была выполнена в полном объёме.