Extraire les Résultats de Recherche eBay en JSON avec le Plugin eBay Search
eBay est l’un des plus grands ensembles de données structurées de prix réels sur internet. Pour n’importe quel produit que vous pouvez nommer, il existe des annonces en direct avec un prix, un état, un score de réputation du vendeur et un coût de livraison. Ces données valent de l’or pour la surveillance des prix, l’arbitrage de revente, l’étude de marché et la création d’outils du type “combien ça vaut”. La partie difficile a toujours été de les extraire.
Scraper eBay à la main, c’est se battre avec une page de recherche lourde en JavaScript, faire tourner des IP pour éviter les blocages, et écrire des sélecteurs qui cassent dès qu’eBay change sa mise en page. Et cela avant même de composer avec le fait qu’eBay exploite 19 places de marché régionales, chacune avec son propre domaine, sa devise et ses particularités.
Le nouveau plugin eBay Search supprime toute cette couche. Vous envoyez un mot-clé, vous recevez un tableau JSON propre d’annonces. Cet article explique ce que renvoie le plugin, comment l’appeler, comment filtrer et trier les résultats, et comment construire quelque chose d’utile par-dessus.
Ce que Fait le Plugin eBay Search
Le plugin prend un mot-clé de recherche - exactement ce que vous taperiez dans la barre de recherche eBay, comme clavier mécanique ou montre omega vintage - et renvoie la page de résultats sous forme de JSON structuré. Pas d’analyse HTML, pas de navigateur headless, pas de rotation de proxys de votre côté.
Il fonctionne sur les 19 places de marché régionales, de ebay.com aux États-Unis à ebay.com.au en Australie, ce qui vous permet de comparer le même produit entre pays et devises avec le même appel.
Pour chaque annonce des résultats, vous obtenez des champs comme :
title- le titre de l’annonceprice- le prix numérique, plus un codecurrencydistinctcondition- l’état lisible, avec unconditionCodenormaliséseller- le nom d’utilisateur du vendeur et son score d’évaluationshipping- le coût de livraison (ou le fait que la livraison est gratuite)sold,watchers,bids- des signaux de demande sur l’annonceimage- l’URL de la miniature de l’annonceurl- une URL d’article propre et canonique
Comme le price numérique et le conditionCode sont normalisés, vous pouvez trier, filtrer et agréger les résultats directement, sans analyser des chaînes comme “1 299,99 €” ni deviner ce que signifie “Occasion - Excellent”.
La Requête
Le point d’accès est un unique appel POST vers /marketplace/ebay-search. Le seul paramètre obligatoire est votre mot-clé. L’authentification se fait via un en-tête, x-scrapeunblocker-key, avec votre clé d’API.
Voici l’appel le plus simple possible avec curl :
curl -X POST "https://api.scrapeunblocker.com/marketplace/ebay-search" \
-H "x-scrapeunblocker-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "clavier mécanique", "domain": "ebay.com"}'
Le paramètre domain sert à choisir une place de marché régionale. Laissez-le sur ebay.com pour les États-Unis, ou mettez-le sur ebay.co.uk, ebay.de, ebay.com.au, etc. pour chercher dans un autre pays. La currency renvoyée suit la place de marché, donc une recherche sur ebay.de revient en EUR.
Filtrer les Résultats
La plupart des cas d’usage réels demandent plus qu’une simple recherche par mot-clé. Le plugin expose les mêmes filtres que vous utiliseriez dans la barre latérale d’eBay, sous forme de champs de requête :
condition- restreindre à neuf, occasion, reconditionné, etc.listing_type- enchère ou prix fixe (Achat immédiat)min_price/max_price- une fourchette de prixfree_shipping- uniquement les annonces à livraison gratuiteseller- les annonces d’un vendeur préciscategory- restreindre à une catégorie eBay
Par exemple, pour trouver des claviers mécaniques d’occasion à moins de 80 EUR sur la place de marché allemande, avec livraison gratuite :
curl -X POST "https://api.scrapeunblocker.com/marketplace/ebay-search" \
-H "x-scrapeunblocker-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "clavier mécanique",
"domain": "ebay.de",
"condition": "used",
"max_price": 80,
"free_shipping": true
}'
Trier et Paginer
Par défaut, eBay renvoie son ordre “Meilleure correspondance”. Vous pouvez le remplacer avec le paramètre sort - par exemple newly_listed pour voir d’abord les annonces les plus récentes, ce que vous voulez si vous surveillez de nouveaux stocks plutôt que de parcourir.
La pagination se contrôle avec page et page_size. Les options de taille de page reflètent celles d’eBay : 60, 120 ou 240 résultats par page. Si vous récupérez un instantané complet d’une catégorie, utilisez page_size: 240 et parcourez page jusqu’à épuisement des résultats, plutôt que de faire beaucoup de petites requêtes.
import requests
URL = "https://api.scrapeunblocker.com/marketplace/ebay-search"
HEADERS = {"x-scrapeunblocker-key": "YOUR_API_KEY"}
def search_ebay(query, domain="ebay.com", **filters):
body = {"query": query, "domain": domain, "page_size": 240, **filters}
resp = requests.post(URL, headers=HEADERS, json=body, timeout=60)
resp.raise_for_status()
return resp.json()
data = search_ebay("montre omega vintage", domain="ebay.com", sort="newly_listed")
for item in data["results"]:
print(item["price"], item["currency"], "-", item["title"])
Une Note sur les Correspondances Approximatives
Un détail qui mérite d’être souligné : quand eBay n’a pas de correspondance exacte pour votre requête, il ne renvoie pas une page vide. À la place, il sert une page de suggestions vaguement liées. C’est très bien pour une personne qui parcourt, mais cela peut discrètement polluer un jeu de données si vous supposez que chaque résultat est une vraie correspondance.
Le plugin gère cela honnêtement. Quand les résultats ne sont pas des correspondances exactes, la réponse met exactMatches: false et inclut un champ notice qui explique ce qui s’est passé, au lieu de déguiser les suggestions en vrais résultats. Dans votre code, vérifiez ce drapeau avant de faire confiance aux résultats :
data = search_ebay("un numéro de modèle très spécifique")
if not data.get("exactMatches", True):
print("Pas de correspondance exacte :", data.get("notice"))
else:
process(data["results"])
Cette simple vérification vous évite de construire en silence un indice de prix à partir de remplissage du type “vous aimerez aussi”.
Ce que Vous Pouvez Construire Avec
Une fois que les annonces eBay sont du JSON propre, beaucoup de petits outils utiles deviennent l’affaire d’un après-midi plutôt que d’un projet :
- Surveillance des prix - lancez la même requête de façon planifiée, stockez le prix médian et alertez quand il bouge. Comme
priceest numérique, l’agrégation est triviale. - Revente et arbitrage - comparez les compteurs
soldet les prix demandés entreebay.cometebay.co.ukpour repérer les écarts régionaux. - Étude de marché - tirez une catégorie entière avec
page_size: 240, puis groupez parconditionet par évaluation du vendeur pour comprendre qui vend quoi, et à quel prix. - Bots de bonnes affaires - filtrez par
max_priceetfree_shipping, triez parnewly_listed, et sondez les nouvelles annonces sous un seuil.
Chacun de ces cas n’est que le plugin plus quelques lignes de votre propre logique - pas d’infrastructure de scraping à surveiller.
FAQ
Ai-je besoin d’un compte développeur ou d’une clé d’API eBay ? Non. Le plugin n’utilise pas l’API officielle Finding ou Browse d’eBay, il n’y a donc pas d’enregistrement d’application eBay, pas de flux OAuth, pas d’approbation par place de marché. Vous appelez le point d’accès ScrapeUnblocker avec votre propre clé.
Quelles places de marché sont prises en charge ?
19 sites eBay régionaux, de ebay.com à ebay.co.uk, ebay.de, ebay.com.au et plus. Réglez le paramètre domain pour en choisir un. Les prix reviennent dans la devise native de cette place de marché.
Combien de résultats puis-je obtenir par appel ?
Jusqu’à 240 annonces par page via page_size, et vous pouvez paginer avec page pour aller plus loin dans une catégorie.
Puis-je filtrer par enchère ou Achat immédiat ?
Oui. Utilisez listing_type pour restreindre aux enchères ou au prix fixe, et combinez-le avec min_price, max_price, condition et free_shipping pour affiner l’ensemble.
Que se passe-t-il s’il n’y a pas de correspondance exacte ?
La réponse revient avec exactMatches: false et un champ notice, et les results contiennent les suggestions vaguement liées d’eBay. Vérifiez le drapeau avant de les traiter comme de vraies correspondances.
Pour Conclure
Le plugin eBay Search transforme la partie la plus chaotique de la collecte de données eBay - la page de résultats de recherche - en un seul appel JSON. Vous vous passez du navigateur headless, de la rotation de proxys et des sélecteurs fragiles, et vous allez droit à des champs normalisés que vous pouvez trier, filtrer et agréger.
Si vous voulez l’essayer, le point d’accès est disponible via le tableau de bord et documenté aux côtés des autres scrapers prêts à l’emploi dans la documentation développeur. C’est l’un d’un ensemble grandissant de plugins sur ScrapeUnblocker qui renvoient des données propres et structurées de sites qui, autrement, demanderaient un vrai travail de scraping.
Essayez ScrapeUnblocker gratuitement
Taux de réussite de plus de 95 % · à partir de 0,55 € pour 1 000 appels · 500 requêtes gratuites à l'inscription.