Aller au contenu principal
Piloterr
Retour au blog
28 juillet 2026

Web scraping automobile : suivre les prix des voitures et des pièces sur AutoScout24, Mobile.de, Leboncoin et Autodoc

Bien pricer une voiture d'occasion est un problème de données avant d'être un problème commercial. La même Golf GTI de trois ans peut être affichée à 24 900 € sur Mobile.de en Allemagne, 22 400 € sur AutoScout24 en France et 21 000 € chez un particulier sur Leboncoin, le même jour. Et une fois la voiture sur votre parc, sa remise en état dépend de pièces dont les prix varient tout autant : la même référence de kit de freinage peut coûter 20 % de moins sur autodoc.pl que sur auto-doc.fr.

Les groupes de distribution, les acheteurs de flottes et les plateformes de pricing automobile qui les servent ont tous besoin de la même chose : une vue continue et structurée des annonces et des prix des pièces, à travers les marketplaces et les pays. Personne n'obtient cela en rafraîchissant des pages de recherche à la main. Il faut un pipeline de collecte automatisé, construit sur des données marketplace fiables.

Cet article déroule ce pipeline, à partir d'un schéma de production chez l'un de nos clients (une plateforme de pricing automobile que nous ne nommerons pas), avec des appels API concrets sur AutoScout24, Mobile.de, Leboncoin et Autodoc.

Le cas d'usage : une plateforme de pricing véhicules pour groupes de distribution

L'un de nos clients construit un outil de pricing pour concessionnaires et gestionnaires de flottes. Leur produit répond aux trois questions que tout professionnel de l'occasion se pose chaque jour :

  1. Combien vaut cette voiture aujourd'hui ? Des snapshots de marché par modèle : prix des annonces en direct, tranches de kilométrage, durée de publication, par pays.
  2. Où sourcer au meilleur prix ? Des alertes d'arbitrage transfrontalier quand le même modèle se négocie nettement sous son prix domestique dans un pays voisin.
  3. Combien coûtera la remise en état ? Un index du coût des pièces par modèle, alimenté par les prix en direct des marketplaces de pièces, pour transformer une fiche d'inspection de reprise en budget de reconditionnement.

Répondre à ces questions exige de collecter des dizaines de milliers d'annonces par jour sur des sites fortement protégés, localisés et structurellement différents les uns des autres. Plutôt que de maintenir en interne une flotte de navigateurs headless, des proxies et des parseurs par site, leur plateforme fait passer la collecte par les API Piloterr. Trois propriétés du web automobile justifient ce choix :

  • Chaque marketplace a une forme différente. Mobile.de sert des composants serveur Next.js derrière des règles anti-bot agressives ; Leboncoin mélange annonces de professionnels et de particuliers avec sa propre protection ; AutoScout24 s'étend sur une douzaine de domaines européens. Une seule couche API normalise tout cela en JSON.
  • Les prix n'ont de sens que localisés. Une recherche allemande et une recherche française sur le même modèle sont deux marchés différents. Les API préservent la locale, la devise et le contexte de marché de chaque annonce.
  • Le volume est quotidien, pas ponctuel. La durée de publication et la détection des baisses de prix exigent de re-scanner les mêmes recherches chaque jour et de comparer les résultats : une charge d'infrastructure, pas un script.

Anatomie d'un pipeline de suivi des prix automobile

Texte brut
Découvrir          Normaliser         Enrichir           Produire
(API search)       (unifier champs)   (API ad)           (index + alertes)
     │                  │                  │                  │
balayages par →   prix, km,       →  specs complètes, →  snapshot marché,
modèle et marché  mise en circ.,     équipements,        alertes arbitrage,
                  devise             type vendeur        index coût pièces

Étape 1 : découvrir les annonces avec les endpoints de recherche

Tout commence par des balayages par modèle et par marché. Pour chaque modèle du catalogue, la plateforme interroge l'endpoint de recherche de chaque marketplace couverte, dans chaque pays pertinent.

Sur AutoScout24, vous passez n'importe quelle URL de recherche de n'importe quel domaine européen : filtres compris. Un appel renvoie les cartes d'annonces avec caractéristiques, prix et informations vendeur :

Bash
curl -G "https://api.piloterr.com/v2/autoscout24/search" \
  -H "x-api-key: YOUR-API-KEY" \
  --data-urlencode "query=https://www.autoscout24.fr/lst/volkswagen/golf?atype=C"

Remplacez autoscout24.fr par autoscout24.de ou autoscout24.it et vous balayez un autre marché national avec la même intégration.

Sur Mobile.de, l'API Search accepte une URL de recherche complète ou un code marque/modèle, avec un paramètre locale couvrant 10 locales et un paramètre page pour la pagination :

Bash
curl -G "https://api.piloterr.com/v2/mobile/search" \
  -H "x-api-key: YOUR-API-KEY" \
  --data-urlencode "query=https://www.mobile.de/fr/voiture/recherche.html?ms=20100&s=Car&vc=Car"

Chaque carte de résultat est déjà riche : price, currency, mileage, first_registration, fuel_type, power, transmission, location, plus price_rating : l'évaluation de marché propre à Mobile.de (GOOD_PRICE, etc.). Injecter ce label dans votre propre modèle de pricing vous donne un signal de calibration gratuit venant de la plus grande marketplace allemande.

Sur Leboncoin, l'API Search prend n'importe quelle URL de recherche ou de catégorie et renvoie des annonces parsées. C'est là que vit le marché des particuliers, dont les prix sous-cotent systématiquement ceux des professionnels :

Bash
curl -G "https://api.piloterr.com/v2/leboncoin/search" \
  -H "x-api-key: YOUR-API-KEY" \
  --data-urlencode "query=https://www.leboncoin.fr/recherche?category=2&text=golf+gti"

Étape 2 : normaliser vers un modèle d'annonce unique

Trois marketplaces, cela signifie trois schémas, trois devises et trois façons d'écrire « première mise en circulation 03/2023 ». La couche de normalisation projette tout sur un enregistrement unique :

(marketplace, ad_id, observed_at) → { make, model, price, currency, mileage_km, first_registration, fuel, transmission, seller_type, location, url }

Deux règles issues de la production évitent le plus de douleur :

  • Conserver les champs bruts de la marketplace à côté des champs normalisés. Quand une anomalie de prix apparaît, vous voulez voir exactement ce que le site affichait.
  • Une annonce qui disparaît est un signal, pas une erreur. Les voitures se vendent. La date de disparition d'une annonce est ce qui transforme une série de prix en métrique de durée de publication : le meilleur indicateur de demande du marché de l'occasion.

Étape 3 : enrichir la shortlist avec les endpoints ad

Les cartes de recherche suffisent pour les courbes de marché. Pour les voitures qu'un acheteur considère réellement, la plateforme récupère l'annonce complète via les endpoints ad : AutoScout24 Ad (specs complètes, liste d'équipements, détails vendeur), Mobile Ad (prix, specs, images, équipements) et Leboncoin Ad (attributs, informations vendeur, images) :

Bash
curl -G "https://api.piloterr.com/v2/mobile/ad" \
  -H "x-api-key: YOUR-API-KEY" \
  --data-urlencode "query=https://www.mobile.de/fr/details.html?id=123456789"

La liste d'équipements compte plus qu'il n'y paraît : deux Golf au kilométrage identique peuvent différer de plusieurs milliers d'euros parce que l'une a un attelage et un régulateur adaptatif. Des données d'équipement structurées sont ce qui rend la comparaison entre annonces honnête.

Étape 4 : chiffrer la remise en état avec les endpoints pièces

Une reprise ne vaut que son prix de revente moins les coûts de remise en état. C'est là que les marketplaces de pièces entrent dans le pipeline.

L'API Autodoc Search couvre plus de 30 boutiques nationales (autodoc.de, auto-doc.fr, autodoc.pl, autodoc.es, …) via le paramètre domain. Chaque résultat inclut price, original_price, discount, la reference constructeur de la pièce, le vendeur et la disponibilité :

Bash
# Pièces de freinage sur la boutique française
curl -G "https://api.piloterr.com/v2/autodoc/search" \
  -H "x-api-key: YOUR-API-KEY" \
  --data-urlencode "query=search?keyword=frein" \
  --data-urlencode "domain=auto-doc.fr"

# Même balayage sur la boutique allemande : mêmes références, prix différents
curl -G "https://api.piloterr.com/v2/autodoc/search" \
  -H "x-api-key: YOUR-API-KEY" \
  --data-urlencode "query=search?keyword=bremsen" \
  --data-urlencode "domain=autodoc.de"

Le champ reference constructeur est la clé de jointure : il permet de comparer exactement la même pièce entre boutiques nationales, et face à d'autres sources : Oscaro et Norauto pour le marché français, et Ovoko pour les pièces OEM d'occasion, qui divisent souvent par deux une ligne de reconditionnement. Autodoc Product ajoute specs, EAN et compatibilité véhicule pour les pièces suivies au long cours.

Un exemple Python fonctionnel : une pièce, cinq pays

Le script ci-dessous recherche le même mot-clé de pièce sur plusieurs boutiques nationales Autodoc, joint les résultats sur la référence constructeur et affiche la boutique la moins chère par référence. Il est volontairement minimal : en production, vous persisteriez les snapshots, suivriez la disponibilité et convertiriez les devises.

Python
import requests
from collections import defaultdict

PILOTERR_API_KEY = "YOUR-API-KEY"
BASE = "https://api.piloterr.com/v2"
HEADERS = {"x-api-key": PILOTERR_API_KEY}

SHOPS = {
    "auto-doc.fr": "frein",
    "autodoc.de": "bremsen",
    "autodoc.es": "freno",
    "autodoc.pl": "hamulec",
    "auto-doc.it": "freno",
}

def sweep_autodoc(domain: str, keyword: str) -> list[dict]:
    r = requests.get(f"{BASE}/autodoc/search", headers=HEADERS,
                     params={"query": f"search?keyword={keyword}", "domain": domain},
                     timeout=60)
    r.raise_for_status()
    return [
        {
            "shop": domain,
            "name": item["name"],
            "reference": item.get("reference"),
            "price": item.get("price"),
            "original_price": item.get("original_price"),
            "discount": item.get("discount"),
            "availability": item.get("availability"),
            "url": item.get("product_url"),
        }
        for item in r.json().get("results", [])
    ]

def main():
    by_reference = defaultdict(list)
    for domain, keyword in SHOPS.items():
        for offer in sweep_autodoc(domain, keyword):
            if offer["reference"] and offer["price"] is not None:
                by_reference[offer["reference"]].append(offer)

    multi_shop = {ref: offers for ref, offers in by_reference.items()
                  if len(offers) >= 2}

    print(f"{len(by_reference)} références collectées, "
          f"{len(multi_shop)} disponibles dans 2 boutiques ou plus\n")

    for ref, offers in sorted(multi_shop.items()):
        offers.sort(key=lambda offer: offer["price"])
        best, worst = offers[0], offers[-1]
        spread = (worst["price"] - best["price"]) / worst["price"] * 100
        print(f"{ref}  {best['name'][:50]}")
        print(f"  best: {best['price']} @ {best['shop']}  "
              f"worst: {worst['price']} @ {worst['shop']}  "
              f"spread: {spread:.0f}%\n")

if __name__ == "__main__":
    main()

La même logique de jointure sur référence alimente le volet voitures du pipeline : remplacez les boutiques par des marketplaces, les références par des buckets normalisés (marque, modèle, année, tranche de km), et le spread devient une alerte d'arbitrage transfrontalier.

Au-delà des annonces : enchères, engins et marché britannique

La même approche API-first dépasse le cœur des marketplaces européennes :

  • Épaves et enchères : Copart expose les lots d'enchères, la source des acheteurs de véhicules accidentés et des assureurs pour pricer les sinistres totaux.
  • Camions et engins : Mascus couvre le matériel lourd d'occasion, les tracteurs et les véhicules utilitaires.
  • Marchés UK et US : Autotrader intègre les annonces à conduite à droite et nord-américaines dans le même pipeline.
  • Références location : AutoEurope ajoute des points de prix de location, utiles aux opérateurs de mobilité qui modélisent l'utilisation de flotte.

Scraper les marketplaces automobiles, est-ce légal ?

Les annonces de véhicules sont des offres commerciales affichées publiquement, et le suivi de prix sur données publiques est l'un des cas d'usage de scraping les plus établis : la même pratique sous-tend tous les comparateurs de prix. Les principes habituels s'appliquent : ne collecter que des données publiques, respecter les limites de débit et faire attention aux données personnelles dans les annonces de particuliers (stocker ce dont l'analyse a besoin, pas le numéro de téléphone du vendeur). Pour le cadre général, consultez notre guide sur la légalité du web scraping.

En résumé

Le pricing automobile est un pipeline : découvrir avec les API de recherche des marketplaces, normaliser vers un modèle d'annonce unique, enrichir la shortlist avec les endpoints ad, et chiffrer la remise en état avec les API pièces jointes sur les références constructeur. Les plateformes qui gagnent sont celles dont la vue marché est plus fraîche que l'intuition du concessionnaire. Pour la mécanique des écarts de prix entre pays (devises, promos asynchrones, assortiment), notre guide du price monitoring multirégional s'applique aux pièces auto exactement comme aux biens de consommation.

Piloterr fournit cette couche de collecte sous forme d'API : AutoScout24, Mobile.de, Leboncoin, Autodoc, Ovoko, Copart et le reste de la library de 500 endpoints, avec bypass anti-bot et rendu navigateur gérés pour vous. Si vous construisez des outils de pricing automobile et voulez évaluer la qualité des données sur vos propres modèles, créez un compte gratuit (+500 crédits, sans carte bancaire) ou contactez-nous pour un tarif volume et les endpoints que nous pouvons ajouter pour votre cas d'usage.

À lire aussi

Guides et actualités sur le scraping web, les proxies et l'extraction de données.

Scraping web

Web scraping et brand protection : traquer la contrefaçon sur AliExpress, Alibaba et Amazon

Comment les plateformes de brand protection utilisent les API de scraping pour détecter les contrefaçons, documenter les vendeurs et surveiller les remises en ligne sur AliExpress, Alibaba, Amazon et d'autres marketplaces. Pipeline, exemples API et script Python.

Josselin Liebe
Josselin Liebe
Lire
Scraping web

Migrer depuis NetNut : que faire après la neutralisation du réseau

Google a pris des mesures contre le réseau de proxies NetNut/Popa, avec le FBI et Lumen. Comment repenser votre stack scraping sans gérer de proxies vous-même.

Josselin Liebe
Josselin Liebe
Lire
Scraping web

17,99 € en France, 29,99 € en Allemagne : monitorer les prix par pays

Même référence ERP, prix différents selon les pays : promos, devises et assortiments varient d'une boutique à l'autre. Modèle de données, exemples API et script Python pour un price monitoring fiable.

Josselin Liebe
Josselin Liebe
Lire

Prêt à commencer ?

Votre API de scraping web est à un clic. Commencez avec +500 crédits, sans infrastructure à gérer, sans proxies à configurer, et sans carte bancaire.

  • +500 crédits
  • Aucune carte bancaire requise
  • Tous les endpoints inclus