
AutoScout24 (часть группы Adevinta) — де-факто стандарт classifieds для б/у и новых авто в Европе: Германия, Австрия, Италия, Нидерланды, Бельгия и ещё 13 рынков. Для импортёров, дилеров сравнения цен, агрегаторов и аналитиков рынка EU нужен не разовый экспорт, а устойчивый мониторинг: цена, пробег, комплектация, регион продавца, дата публикации. Ниже — как устроена площадка технически, какие поля собирать, почему «готовый API за $99» редко закрывает задачу и как мы строим pipeline без серых обходов captcha.
Кратко
- AutoScout24 охватывает 18 стран ЕС с единым поиском; основная валюта — EUR; объём листингов — порядка 150k+ активных объявлений на ключевых рынках.
- Фронтенд на Next.js отдаёт данные в JSON через
__NEXT_DATA__; защита включает Akamai и rate limits — нужны бережные лимиты, а не «обход любой ценой». - Официальный Listing Creation API — для дилеров (создание объявлений), публичного read-API для мониторинга всего рынка нет.
- Поиск на сайте ограничен примерно ~4000 результатами на один запрос — крупные выборки дробят по региону, марке, ценовым коридорам.
- VivaCoding: юридический аудит, ETL, дедуп, алерты, выгрузка в каталог или CRM.
Обзор платформы AutoScout24
AutoScout24 работает как мульти-country marketplace: один бренд, локализованные домены и фильтры под каждый рынок. Продавцы — частные лица, независимые дилеры и франшизные сети. Для B2B-сценариев важны: cross-border импорт (DE → CY, PL → UA), сравнение residual value по моделям, мониторинг конкурентов-дилеров в радиусе региона.
Технически витрина — SPA на Next.js. Карточка объявления и результаты поиска содержат структурированный payload в теге script id="__NEXT_DATA__", дополненный JSON-LD (Vehicle, Offer) для SEO. Это стабильнее парсинга «голого» HTML, но схема полей меняется при релизах — pipeline должен версионироваться и падать с алертом, а не тихо отдавать пустые поля.
Официальный Listing Creation API (REST, OAuth) предназначен дилерам для публикации и обновления своих лотов — write-only с точки зрения мониторинга чужого рынка. Партнёрские data feeds обсуждаются отдельно и не заменяют кастомный сбор, если нужен полный срез категории «все BMW 3er до 25k EUR в DE+AT».
Типичный сценарий импортёра на Кипре или в Восточной Европе: ежедневный snapshot лотов в радиусе 500 km от Hamburg или Munich, фильтр по пробегу < 120k km и diesel/wagon, расчёт landed cost с VAT reclaim. Без автоматизации менеджер тратит 2–3 часа на ручной мониторинг; pipeline с diff по цене за 24 часа показывает только изменившиеся позиции — экономия времени и меньше пропущенных deals.
Какие поля собираем
| Поле | Назначение | Примечания |
|---|---|---|
| listing_id / offer_id | Уникальный ключ, дедуп | Стабильный ID из API payload |
| make, model, variant | Фильтры каталога | Нормализация синонимов (VW ↔ Volkswagen) |
| price, currency (EUR) | Мониторинг цен | Net/gross, VAT hint по стране |
| mileage, first_registration | Оценка износа | km vs miles по рынку |
| fuel, transmission, power_kw | Спецификация | Маппинг на вашу таксономию |
| dealer_id, seller_type | Сегментация B2B/B2C | Дилер vs частник |
| location (country, zip, geo) | Логистика импорта | 18 стран — ISO-код обязателен |
| photos[], main_image | Каталог | CDN URLs, checksum для изменений |
| published_at, updated_at | Freshness | Снятие с публикации = soft delete |
| url | Deep link, аудит | Canonical URL объявления |
Технические сложности
Лимит выборки. Поисковый UI и внутренние endpoint’ы не отдают «весь рынок» одним запросом — практический потолок около 4000 записей на комбинацию фильтров. Стратегия: декомпозиция по price buckets, postcode regions, model years и merge с дедупом по listing_id.
Akamai и bot management. Резкие burst-запросы с одного IP ведут к 403/ challenge. Мы используем rate limiting, jitter, ротацию egress там, где это согласовано с заказчиком, и приоритет официальных каналов — не commercial «captcha farms».
Schema drift. Next.js bundles меняют вложенность JSON — без contract tests pipeline ломается незаметно. Версионируем парсер, храним raw snapshot для forensics.
Мультиязычность. Один автомобиль может дублироваться на .de и .at с разными текстами — дедуп по VIN + dealer, не только по URL.
Архитектура pipeline
- Legal & scope — цель сбора, robots.txt, ToS, GDPR (персональные данные продавца не тащим в аналитику без основания).
- Seed & partition — список фильтров/регионов, очередь задач (Celery, Bull, Laravel Queue).
- Fetch layer — HTTP-клиент с backoff; извлечение из
__NEXT_DATA__и fallback JSON-LD. - Normalize & enrich — единая схема полей, FX при необходимости, геокодинг опционально.
- Dedup & diff — upsert в PostgreSQL/MySQL; история цены; пометка delisted.
- Export — webhook в CRM, CSV на SFTP, feed для автокаталога.
- Monitor — SLA, алерты в Telegram/Email при падении success rate.
Кастомный парсер vs сторонний API
| Критерий | Кастомный pipeline (VivaCoding) | Commercial scraping API |
|---|---|---|
| Покрытие 18 стран | Полный контроль фильтров и полей | Зависит от провайдера; часто только DE |
| Listing Creation API | Интегрируем write для ваших лотов | Не заменяет read мониторинг |
| Дедуп и история цен | Под вашу БД и CRM | Обычно snapshot без diff |
| Стоимость на масштабе | Фикс разработка + infra | Per-request растёт линейно |
| Compliance | Документируем основания | «Серый» риск на стороне vendor |
| Schema changes | Быстрый патч под ваш SLA | Ждёте очередь vendor |
Третий путь — партнёрский data feed от AutoScout24 для крупных integrators: имеет смысл при enterprise-объёме и договоре. Для mid-market импортёра кастомный ETL часто быстрее по time-to-value.
Когда услуга подходит
- Импорт б/у из DE/AT/NL в CY, PL, Baltics — нужен мониторинг цен и наличия по VIN-моделям.
- Дилер или агрегатор строит сайт-каталог с внешними лотами (с согласия правообладателя или по лицензии).
- BI-команда считает residual value, days-on-market, сезонность по EU.
- Уже есть CRM — нужен scheduled сбор данных без ручного Excel.
Когда не подходит
- Нужно «слить весь AutoScout24» без юридической модели — не берём.
- Ожидание обхода Akamai/captcha «как у конкурентов в Telegram» — не наш формат.
- Разовая выборка 50 объявлений — достаточно ручного экспорта или browser extension.
- Требуется только публикация своих машин — используйте официальный Listing Creation API, не парсинг.
Оценка сроков и бюджета
Ориентиры VivaCoding после брифа (без учёта infra и лицензий CRM):
| Объём | Срок | Бюджет от |
|---|---|---|
| MVP: 1–2 страны, 10 полей, CSV по cron | 2–3 недели | 1 490 € |
| Multi-country, dedup, price history, API export | 4–6 недель | 3 490 € |
| Enterprise: 18 стран, CRM, Listing API write, SLA 99.5% | 8–12 недель | 7 990 €+ |
Ежемесячная поддержка: мониторинг schema drift, ротация proxy при необходимости, tuning partition — от 290 €/мес. Подробнее о хабе: парсинг сайтов.
Связанные услуги
- парсинг сайтов — общий хаб по data pipeline
- сайты для автобизнеса — каталог и интеграции
- сбор данных — ETL и нормализация
- разработка сайта-кataloga — витрина под импорт
- разработка сайтов
- контакты — бриф и оценка
FAQ
Есть ли у AutoScout24 API для чтения всех объявлений?
Публичного read-API для всего рынка нет. Listing Creation API — для дилеров (create/update своих лотов). Мониторинг чужих объявлений — через согласованный сбор или enterprise feeds.
Как обойти лимит ~4000 результатов в поиске?
Дробим запросы по фильтрам (цена, регион, год), объединяем результаты и дедуплицируем по listing_id. Это стандартная практика data engineering, не «дыра в сайте».
Легально ли парсить AutoScout24?
Зависит от юрисдикции, цели и ToS. Мы проводим аудит до старта: что собираем, храним ли персональные данные, нужен ли DPA. Серый обход защит не предлагаем.
Откуда технически брать данные — HTML или JSON?
Приоритет — JSON из __NEXT_DATA__ на страницах поиска и карточки; JSON-LD как fallback. HTML-селекторы — последний слой из-за частых UI-изменений.
Можно ли связать парсинг с нашим WordPress-каталогом?
Да. Экспорт в WooCommerce REST, custom post type или внешнюю БД с sync по cron. Часто совмещаем с сайтом для автобизнеса.
Чем отличается от mobile.de или других EU-площадок?
AutoScout24 шире по geography (18 стран). Архитектура pipeline похожа; парсеры разделяем по адаптерам, общая нормализация — в одном ETL.
Как часто обновлять данные?
Для pricing analytics — каждые 6–24 часа; для hot leads у дилера — каждые 1–4 часа в рабочее время. Чаще — только при обоснованной нагрузке и лимитах.