
Разработка парсера с китайского источника для каталога автомобилей

Задача: свой каталог без ручного переноса объявлений
Клиенту требовался собственный каталог автомобилей на сайте, который автоматически получает данные с китайского сайта объявлений che168.com, переводит их на русский, обрабатывает фотографии и поддерживает каталог в актуальном состоянии.
Главная задача была не просто «скачать объявления». Нужно было построить систему, которая работает постоянно: находит новые автомобили, обновляет данные, обрабатывает ошибки и передаёт готовые карточки в каталог без ежедневного участия менеджера.
Поэтому вместо обычного скрипта мы разработали полноценную систему автоматизации. В ней каждый этап отвечает за свою часть работы, а сбой одного компонента не останавливает работу и не рушит всю систему.
Не просто парсер, а система из 7 программ
Система состоит из семи независимых компонентов:
- парсер — получает данные с сайта-источника;
- переводчик — переводит описания и характеристики;
- обработчик фотографий — собирает и оптимизирует изображения;
- калькулятор — считает корректно стоимость с учетом конвертации валюты, таможенный, транспортных, утиль и иных сборов, позволяя клиенту самостоятельно менять параметры расчёта при изменении условий;
- публикатор — передаёт готовые карточки в WooCommerce;
- планировщик — управляет очередностью и регулярностью задач;
- API для админки — связывает систему с панелью управления.
Между компонентами используются очереди Redis. Поэтому, если, например, временно недоступен переводчик, уже обработанные автомобили не останавливаются: другие этапы продолжают работать, а незавершённые задачи ждут своей очереди.
Это принципиальное отличие от простого «парсера в одном файле», который приходится запускать заново после каждого серьёзного сбоя.

Как обходим блокировки китайского сайта
Автоматически собирать большие объёмы данных с крупного сайта непросто. che168 использует антибот-защиту, поэтому система отслеживает сразу несколько признаков блокировки: сетевые ошибки, HTTP 403/429/503, капчу, скрытые проверки браузера и подозрительно короткие ответы.
Чтобы система могла продолжать работу, используются:
- ротация прокси;
- случайные паузы между запросами;
- перемешивание порядка страниц;
- автоматическая пауза для проблемного IP;
- ограниченное количество попыток;
- карантин страниц, которые не удалось получить.
Например, после трёх ошибок подряд конкретный адрес автоматически убирается из работы на заданное время. А проблемная страница отправляется в карантин и периодически проверяется повторно. Все эти настройки доступны из панели управления.
Получается не гонка «скачать всё как можно быстрее», а система, рассчитанная на стабильную работу в долгую.
Оригинальная система перевода
перевод, который становится точнее со временем
Проведя анализ, команда разработки пришла к заключению, что просто отправлять каждое описание и название автомобиля в Google Translate не лучшее решение. Автомобильные комплектации и технические термины требуют более внимательного подхода с возможностью уточнения и редактирования перевода.
Поэтому сделали трёхступенчатую систему:
- сначала используется собственный словарь уже проверенных переводов;
- если точного совпадения нет, система пытается собрать фразу из известных частей;
- только оставшийся непереведённый текст отправляется в Google Translate.
Новые фразы сохраняются в отдельный словарь. При необходимости менеджер может отредактировать перевод, после чего система будет использовать его в дальнейшем. Есть и массовое обновление: если словарь изменили, переводы уже существующих карточек можно опубликовать одной кнопкой.

Изображения: тоже отдельная задача
У автомобиля может быть большая галерея — обычно 20–30 фотографий, иногда около 40. Поэтому система не ограничивается миниатюрой из списка объявлений.
Сначала она пытается получить полную галерею с детальной страницы автомобиля. Если страница временно недоступна, используются запасные источники — миниатюра или ранее сохранённая ссылка на фотографию.
Изображения автоматически приводятся к единому формату JPEG и оптимизируются по размеру, чтобы не перегружать систему оригиналами изображений, которые могут достигать существенных объемов и негативно сказываться на скорости загрузки страницы. Еще важный нюанс: повторно одинаковые фотографии не загружаются, поэтому каталог не превращается в склад бесполезных копий.
Публикация в WooCommerce без хаоса
После обработки автомобиль попадает в каталог WooCommerce.
Здесь особенно важны несколько правил:
- товар определяется по уникальному SKU, поэтому дубли не создаются;
- ручные действия менеджера не перезаписываются автоматикой;
- новые автомобили сначала появляются как черновики;
- цена рассчитывается самим сайтом по единой формуле;
- автомобиль, временно исчезнувший с источника, сначала получает статус «снят с продажи», а не удаляется сразу.
Если объявление появляется снова, карточка может автоматически вернуться в прежний статус вместе с накопленной историей.
Всё управление — в одной панели
Чтобы для работы с системой не требовался программист, мы разработали отдельную панель управления парсера и калькулятора.
Менеджер видит:
- работает система или стоит на паузе;
- сколько автомобилей находится на каждом этапе;
- что сейчас находится в очереди;
- журнал активности;
- состояние прокси;
- скорость обхода;
- словарь переводов.
Причём технические ошибки переведены на понятный русский язык. Менеджеру не нужно разбираться, что означает JS challenge detected: система объясняет, что сайт показал проверку вместо результатов.
Для работы с инструментом также была подготовлена простая инструкция.
Калькулятор растаможки
Отдельно разработан калькулятор, который показывает две суммы: стоимость растаможки для физического и юридического лица.
В расчёте учитываются стоимость автомобиля, конвертация валюты, таможенная пошлина, акциз, НДС, утилизационный сбор и сбор за таможенное оформление. Переменные и формулы доступны для изменения через панель управления без привлечения программиста.
Это позволяет бизнесу самостоятельно менять параметры расчёта при изменении условий, не переделывая код сайта.
Результат
В рамках проекта спарсено и переведено 300 000 карточек автомобилей. Данные автоматически обрабатываются, переводятся, фотографии приводятся к единому виду, а готовые автомобили передаются в каталог.
Дополнительно в бизнес-расчётах учитываются конвертация валюты, таможенные платежи, НДС, утилизационный сбор, транспортные расходы и комиссия продавца.
Главное — каталог больше не требует постоянного ручного переноса данных. Система самостоятельно проходит источник, обрабатывает новые автомобили и поддерживает каталог в актуальном состоянии.
Кому может пригодиться такой парсер?
Такой подход подходит не только для наши автомобилей. Если бизнес регулярно переносит большие объёмы информации с одного сайта на другой, можно написать парсер сайта под конкретную задачу.
Например:
- парсер товаров и каталогов;
- парсер для маркетплейсов;
- парсер объявлений;
- парсер цен на маркетплейсах;
- парсеры интернет-магазинов;
- парсер данных сайтов для внутренней аналитики.
Вместо универсального сервиса можно разработать собственную систему с нужными интеграциями, правилами обработки и настройками.
Нужно автоматизировать сбор данных?
Мы занимаемся разработкой парсеров под конкретные бизнес-задачи: от простого сбора данных до полноценной системы с переводом, обработкой товаров, интеграцией с сайтом и панелью управления.
Если вам нужно заказать парсер, сделать парсер сайта или разобраться, как автоматизировать сбор данных с конкретного источника — расскажите о задаче. Обсудим источник, объём данных и нужный результат и предложим подходящий вариант реализации.