Почему парсер автокаталога ошибается после запуска и как это предотвратить
Шесть историй из проекта для АВГ Моторс
Летом 2026 года мы запустили для АВГ Моторс систему, которая сама собирает объявления с che168.com — одной из крупнейших в Китае площадок подержанных автомобилей. Система переводит объявления, обрабатывает фотографии, считает цену под ключ с растаможкой и публикует машины в каталог на сайте. Сейчас в каталоге avgmotors.ru больше 220 тысяч автомобилей, и ни один из них менеджер не переносил руками. Как устроена система изнутри, мы рассказали в кейсе. Эта статья — о том, что начинается после запуска.
Короткий ответ на вопрос из заголовка: парсер ошибается не потому, что его плохо написали, а потому, что мир вокруг него меняется. Источник отдаёт странные ответы, продавцы переподают объявления, машинный перевод путает модели, а у части машин просто нет нужных данных. Ниже — шесть реальных историй: что сломалось, как мы это заметили, как исправили и какую защиту поставили, чтобы это не повторилось.

Почему ошибка парсера стоит денег
Ошибка в скрипте для внутренней аналитики — это неверная цифра в отчёте, которую увидят два человека. Ошибка в парсере, который наполняет каталог, видна покупателю:
- в карточке Haval стоит марка MG — человек перестаёт доверять всему каталогу;
- мощность отличается от официальной — клиент сравнивает с дилерскими характеристиками и задаёт неудобные вопросы;
- цена под ключ занижена — менеджеру приходится объяснять, почему на самом деле машина стоит в разы дороже;
- целой марки нет в фильтре — значит, нет и заявок по ней.
Поэтому парсер для нас — не скрипт «на выходные», а система, у которой есть проверки, журнал ошибок и понятный порядок восстановления. Все истории ниже укладываются в три класса риска: источник отдаёт неправильные данные, расчёты опираются на неполные данные, один и тот же объект выглядит по-разному.
Риск 1. Источник отдаёт неправильные данные
История 1. Машины, которые «стали» MG
Симптом. В каталоге появились автомобили марки MG, хотя на фотографиях были Haval, BMW и Cadillac.
Причина. Для нескольких серий MG che168 не вернул ошибку, а выдал правдоподобный с виду ответ: число страниц в выдаче оказалось в десятки раз больше, чем у самой крупной реальной серии на площадке. На этих страницах была перемешанная выдача по всему сайту. Система добросовестно считала, что все найденные машины относятся к той серии, которую она обходит. Несколько десятков карточек получили чужую марку, часть из них успела появиться в каталоге.
Исправление. Восстановили марку и модель по оригинальному китайскому названию каждого объявления и заново опубликовали карточки.
Защита. Теперь система проверяет ответ источника на правдоподобность. Если размер выдачи не похож на реальный, она не обходит такие страницы, а перепроверяет серию позже.
Вывод. Внешний источник может ошибаться «тихо», не сообщая об ошибке. Проверять нужно не только «пришёл ли ответ», но и «похож ли он на правду».
История 2. Jeep, Chevrolet и Geely «закончились»
Симптом. По ряду известных марок — Jeep, Chevrolet, Geely, Li Auto и другим — в каталоге не было ни одной машины. Это выглядело как «нет в наличии».
Причина. Адреса разделов этих марок на che168 изначально составили по транслитерации китайских названий, и у больше десятка марок они не совпали с настоящими. На неверный адрес сайт не отвечал ошибкой, а показывал общую страницу. Для системы обход выглядел успешным: марка пройдена, моделей ноль.
Исправление. Сверили адреса с живым сайтом и исправили их. Каталог сразу пополнился сотнями моделей.
Вывод. Любой справочник, составленный «по логике», нужно сверять с реальным источником. И «успешно, но пусто» — тоже результат, который стоит проверять.
Риск 2. Расчёты на неполных или неверно пересчитанных данных
История 3. Каждая машина «слабее» на 1,4%
Симптом. Популярный полуторалитровый турбомотор Volkswagen мощностью 118 кВт в каталоге показывался как 158 л.с. У официальных дилеров — 160.
Причина. Киловатты от источника были верными, ошибка была в пересчёте. Использовался коэффициент для механической лошадиной силы (hp: 1 кВт = 1,341), а в российских характеристиках «л.с.» — метрическая (1 кВт ≈ 1,36). Разница — около 1,4%, и она касалась каждой машины в каталоге.
Исправление. Заменили коэффициент и обновили мощность во всём каталоге одной операцией, без перепубликации каждой карточки.
Вывод. Единицы измерения — классический источник тихих ошибок. Проверка «работает или не работает» их не ловит: значения выглядят правдоподобно. Найти такую ошибку можно только сверкой с эталоном.

История 4. Дорогая машина, которая считалась как дешёвая
Симптом. У части автомобилей цена под ключ выходила в разы ниже реальной.
Причина. Растаможка зависит от объёма и мощности двигателя. У некоторых машин, в основном из параллельного импорта, источник этих данных не отдавал, и калькулятор считал с нулями. Для машины старше трёх лет это значит нулевую пошлину и минимальный утилизационный сбор. Формула была правильной — на входе были пустые данные.
Исправление. Недостающие характеристики восстанавливаются по объявлениям той же модели с такой же комплектацией, причём только если эти объявления согласуются между собой. Для каждого значения записывается, откуда оно взято.
Защита. Машина без данных о двигателе в каталог не публикуется.
Вывод. Ноль — опасное значение по умолчанию. Если данных нет, система должна остановиться, а не посчитать.
Риск 3. Один и тот же объект выглядит по-разному
История 5. Одна машина — две карточки
Симптом. В каталоге встречался один и тот же автомобиль в двух карточках.
Причина. Продавцы на che168 время от времени заново публикуют объявление, чтобы поднять его в выдаче. Для площадки это новое объявление с новым номером, а машина та же.
Исправление. Сверяем автомобили по VIN — он есть на странице объявления. Если VIN совпал, старая карточка снимается с витрины. На случай ошибки снятие обратимо в течение нескольких дней.
Был и второй, более тонкий случай. Два объявления одной машины обрабатывались почти одновременно и «разминулись»: каждое проверило, нет ли дубля, раньше, чем другое успело сохраниться. Теперь записи с одним VIN обрабатываются строго по очереди.
Вывод. Уникальность товара определяется свойствами самого объекта, а не номером объявления. И проверять это нужно с учётом одновременной обработки.
История 6. «Песня L» и «оплата»
Симптом. В названиях и комплектациях появлялись странные слова.
Причина. Машинный перевод переводит буквально и не знает автомобильного контекста. Несколько примеров из того, что предлагал Google Translate:
- 宋L — модель BYD Song L — «Песня L»;
- 款 — пометка модельного года — «оплата»;
- 国VI — экологический стандарт «Китай-6» — «страна VI».
Исправление. Перевод в системе трёхступенчатый: сначала проверенный словарь, затем сборка фразы из известных частей, и только остаток уходит в машинный перевод. Новые термины попадают в очередь на проверку. Накопившуюся очередь — несколько тысяч терминов — мы разобрали вручную, опираясь на официальные названия моделей. После правки словаря переводы уже опубликованных машин обновляются массово.
Вывод. Машинный перевод — это черновик. Каталогу нужен словарь и человек, который за ним следит.
Что спросить у подрядчика, если вы заказываете парсер
Эти вопросы помогут отличить систему, которая выдержит годы работы, от скрипта, который сломается при первом изменении источника:
- Что будет, если источник вернёт странный ответ? Есть ли проверка правдоподобности, а не только «ответ пришёл»?
- Откуда берутся справочники — категории, марки, модели: из самого источника или составлены вручную?
- Что система делает с пустыми данными: публикует с нулями или останавливается?
- Как определяется дубль: по номеру объявления или по свойствам товара?
- Кто и как проверяет перевод и единицы измерения?
- Есть ли журнал ошибок, понятный менеджеру без программиста? В нашей системе технические ошибки переведены на понятный русский язык.
- Можно ли поставить сбор на паузу и продолжить, не потеряв данные?
- Кто поддерживает систему после запуска?
От чего зависят стоимость и сроки
- Источник. Есть ли у него защита от автоматического сбора и как часто меняется вёрстка.
- Объём. Сотни товаров или сотни тысяч, как часто нужно обновлять данные.
- Обработка. Перевод, фотографии, расчёт цены, приведение характеристик к единому виду.
- Интеграция. Куда выгружать — WooCommerce, 1С-Битрикс, собственный API — и что делать с товарами, которые исчезли из источника. Похожие задачи мы решаем в рамках доработки функционала сайтов.
- Управление. Нужна ли панель, журнал, ручная проверка спорных данных.
- Поддержка. Источник меняется, и система должна меняться вместе с ним. Это отдельная работа — техническая поддержка, а не разовая доработка.
Нужно автоматизировать сбор данных?
Расскажите, откуда нужно собирать данные и куда их выгружать. Оценим разработку и предложим вариант, который будет работать не только в день запуска.
Другие работы для АВГ Моторс
Разработка парсера che168 для каталога автомобилей АВГ Моторс
Шесть программ, которые сами собирают, переводят и публикуют больше 220 тысяч автомобилей из Китая
- Разработка
- Парсинг
- Интеграции
- WooCommerce

Кейс: корпоративный сайт автодилера
Стильный сайт с каталогом автомобилей и фильтрами
- Веб-дизайн
- Сайт под ключ
- Разработка
- WordPress


