Le suivi des prix sur Amazon et Walmart nécessite de surveiller les mêmes produits sur les deux plateformes et de comparer les prix au fil du temps. La vérification manuelle est irréaliste à grande échelle. Ce tutoriel construit un traqueur automatisé qui interroge les deux plateformes via l'API de Scavio, compare les prix et alerte en cas de baisse ou d'opportunités d'arbitrage. La même clé API couvre les deux plateformes avec un format de réponse cohérent.
Prérequis
- Python 3.8+ installé
- bibliothèque requests installée
- Une clé API Scavio depuis scavio.dev
- Une liste de produits à suivre
Parcours
Étape 1: Définissez votre catalogue de produits
Listez les produits que vous souhaitez suivre sur les deux plateformes.
import os
API_KEY = os.environ['SCAVIO_API_KEY']
PRODUCTS = [
'Sony WH-1000XM5',
'Apple AirPods Pro 2',
'Samsung Galaxy S26',
'Nintendo Switch 2',
]Étape 2: Recherchez chaque produit sur les deux plateformes
Interrogez Amazon et Walmart pour chaque produit et extrayez les données de prix.
import requests
H = {'x-api-key': API_KEY}
def get_prices(product: str) -> dict:
result = {'product': product}
for platform in ['amazon', 'walmart']:
resp = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': platform, 'query': product}, timeout=10)
top = resp.json().get('organic', [{}])[0]
result[platform] = {
'title': top.get('title', ''),
'price': top.get('price'),
'url': top.get('link', ''),
'rating': top.get('rating'),
}
return resultÉtape 3: Calculez les écarts de prix
Comparez les prix entre les plateformes et signalez les opportunités d'arbitrage.
def analyze_prices(price_data: dict, min_margin: float = 0.10) -> dict:
amazon_price = price_data.get('amazon', {}).get('price')
walmart_price = price_data.get('walmart', {}).get('price')
if amazon_price and walmart_price and amazon_price > 0 and walmart_price > 0:
diff = abs(amazon_price - walmart_price)
margin = diff / max(amazon_price, walmart_price)
cheaper = 'amazon' if amazon_price < walmart_price else 'walmart'
price_data['analysis'] = {
'cheaper_on': cheaper,
'price_diff': round(diff, 2),
'margin': round(margin * 100, 1),
'arbitrage': margin >= min_margin,
}
else:
price_data['analysis'] = {'error': 'price data incomplete'}
return price_dataÉtape 4: Exécutez quotidiennement et enregistrez l'historique
Exécutez le traqueur quotidiennement et stockez les résultats pour l'analyse des tendances.
import json, datetime
def daily_track():
date = datetime.date.today().isoformat()
results = []
for product in PRODUCTS:
data = get_prices(product)
analyzed = analyze_prices(data)
results.append(analyzed)
if analyzed.get('analysis', {}).get('arbitrage'):
a = analyzed['analysis']
print(f'ARBITRAGE: {product} - ${a["price_diff"]} cheaper on {a["cheaper_on"]} ({a["margin"]}% margin)')
with open(f'prices_{date}.json', 'w') as f:
json.dump(results, f, indent=2)
return results
daily_track()Exemple Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def compare_prices(product):
prices = {}
for p in ['amazon', 'walmart']:
data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': p, 'query': product}, timeout=10).json()
top = data.get('organic', [{}])[0]
prices[p] = top.get('price')
return prices
print(compare_prices('Sony WH-1000XM5'))Exemple JavaScript
async function comparePrices(product) {
const prices = {};
for (const p of ['amazon', 'walmart']) {
const data = 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: p, query: product})
}).then(r => r.json());
prices[p] = data.organic?.[0]?.price;
}
return prices;
}Sortie attendue
A daily price tracker comparing Amazon and Walmart prices with arbitrage alerts.