Les données de Google Shopping sont essentielles pour le suivi des prix, l'analyse concurrentielle et la recherche e-commerce. Le scraping de Google Shopping avec des proxies est fragile car Google bloque agressivement les requêtes automatisées, change la mise en page et nécessite le rendu JavaScript. Une API de recherche comme Scavio renvoie des résultats structurés de Google Shopping au format JSON, incluant les titres des produits, les prix, les notes, les noms des vendeurs et les liens. Ce tutoriel montre comment interroger les données Google Shopping en Python et JavaScript sans utiliser de proxy ni de navigateur headless. Vous obtiendrez des résultats fiables et structurés en moins de dix lignes de code.
Prérequis
- Python 3.8+ ou Node.js 18+ installé
- bibliothèque requests installée (Python) ou fetch disponible (JS)
- Une clé API Scavio depuis scavio.dev
Parcours
Étape 1: Configurez votre clé API
Stockez votre clé API Scavio en tant que variable d'environnement pour la garder hors du contrôle de version.
import os
API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")Étape 2: Interrogez les résultats Google Shopping
Envoyez une requête POST à l'API Scavio avec votre requête produit. La réponse contient des résultats structurés avec les prix, les notes et les informations du vendeur.
import requests
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": "wireless earbuds", "type": "shopping"})
data = resp.json()Étape 3: Analysez les données produit
Extrayez le prix, la note et le vendeur de chaque résultat pour analyse ou stockage.
for item in data.get("shopping_results", [])[:5]:
print(f"{item['title']} - {item.get('price', 'N/A')}")
print(f" Seller: {item.get('source', 'N/A')}")
print(f" Rating: {item.get('rating', 'N/A')} ({item.get('reviews', 0)} reviews)")Étape 4: Exportez en CSV
Enregistrez les résultats dans un fichier CSV pour une analyse dans un tableur ou des pipelines ultérieurs.
import csv
with open("shopping_results.csv", "w", newline="") as f:
w = csv.DictWriter(f, fieldnames=["title", "price", "source", "rating", "link"])
w.writeheader()
for item in data.get("shopping_results", []):
w.writerow({
"title": item.get("title", ""),
"price": item.get("price", ""),
"source": item.get("source", ""),
"rating": item.get("rating", ""),
"link": item.get("link", ""),
})Exemple Python
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": "wireless earbuds", "type": "shopping"})
for item in resp.json().get("shopping_results", [])[:5]:
print(f"{item['title']} - {item.get('price', 'N/A')}")Exemple JavaScript
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"},
body: JSON.stringify({platform: "google", query: "wireless earbuds", type: "shopping"})
});
const data = await r.json();
(data.shopping_results || []).slice(0, 5).forEach(i =>
console.log(i.title, i.price)
);Sortie attendue
A list of Google Shopping products with title, price, seller, rating, and link returned as structured JSON without any proxy infrastructure.