Этот проект содержит продвинутый, отказоустойчивый веб-парсер, созданный для извлечения массивного датасета (~120 000 товаров, 7 500 брендов) из глобального парфюмерного каталога.
Целевой ресурс использует агрессивные механизмы защиты от ботов, включая проверку целостности браузера от Cloudflare и жесткое лимитирование запросов (HTTP 429 Too Many Requests).
Архитектура и инженерные решения:
При подготовке к миграции ~120k записей в среду WooCommerce использование существующих open-source датасетов было отклонено. Основные причины: неактуальность данных, плохая нормализация и отсутствие прямых URL-адресов товаров, необходимых для дальнейшего обогащения базы (парсинг нот и пирамид).
Был разработан кастомный парсер со следующим функционалом:
Обход антифрод-систем: Использование SeleniumBase в режиме uc=True (Undetected Chromedriver) для обхода проверок Cloudflare turnstiles и маскировки отпечатков webdriver.
Очистка данных «на лету» (Data Cleaning): Извлеченные сырые строки динамически парсятся с помощью регулярных выражений (RegEx) для разделения названия продукта, года выпуска и гендерной принадлежности. Имя бренда автоматически вырезается из названия самого аромата для обеспечения чистоты БД при импорте.
Отказоустойчивое хранение: Данные сохраняются в формате JSON Lines (.jsonl) в режиме добавления (append-only). Это гарантирует сохранность данных при неожиданных сбоях ОС или блокировках со стороны сервера.
Подробнее:
https://github.com/romanzhan2610-png/perfume-scraper