Dans l'e-commerce, les décisions de tarification se prennent rapidement. Un concurrent baisse son prix de 5% et, en quelques heures, les clients le remarquent. Les entreprises qui gagnent sont celles qui le remarquent en premier.
La création d'un système de surveillance des prix exigeait auparavant de maintenir une infrastructure de proxy, de gérer les systèmes anti-bots et d'écrire des scrapers personnalisés pour chaque site cible. FourA réduit cette complexité à un seul appel API.
Le problème
La vérification manuelle des prix n'est pas viable à grande échelle. Même une petite entreprise d'e-commerce avec 50 concurrents doit suivre des centaines de pages produits. À raison de trois vérifications par jour, cela représente plus de 1 000 requests quotidiennes, chacune pouvant être potentiellement bloquée, soumise à un rate limit ou cassée par une refonte de site.
L'approche
Voici à quoi ressemble un pipeline de surveillance des prix prêt pour la production avec FourA :
1. Définir votre catalogue de produits
Commencez par une liste structurée d'URL de concurrents et des sélecteurs CSS où les prix apparaissent :
products = [
{"sku": "WDG-001", "competitor": "Store A", "url": "https://store-a.com/widget", "selector": ".price-current"},
{"sku": "WDG-001", "competitor": "Store B", "url": "https://store-b.com/products/widget", "selector": "[data-price]"},
]
2. Récupérer et parser
FourA gère les aspects complexes : le TLS fingerprinting, la rotation de proxy et le rendu JavaScript. Votre code envoie simplement une URL et reçoit du HTML en retour :
import requests
from bs4 import BeautifulSoup
def get_price(product):
resp = requests.post("https://eu.api.foura.ai/api/v1/tasks", headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}, json={"url": product["url"], "type": "proxy"})
html = resp.json()["content"]
soup = BeautifulSoup(html, "html.parser")
el = soup.select_one(product["selector"])
return float(el.text.strip().replace("$", "").replace(",", "")) if el else None
3. Suivre les évolutions dans le temps
Stockez les résultats dans une base de données ou un fichier CSV. Signalez les changements importants pour déclencher des alertes :
if abs(new_price - last_price) / last_price > 0.03: # 3% threshold
send_alert(f"{product['competitor']} changed {product['sku']} from ${last_price} to ${new_price}")
4. Planifier avec Cron
Exécutez l'outil de suivi toutes les heures ou toutes les quelques heures selon la volatilité des prix sur votre marché.
Pourquoi cela fonctionne
- Aucune infrastructure à maintenir. Pas de serveurs proxy, pas de fermes de navigateurs, pas de logique de rotation d'IP.
- S'adapte aux changements de protection. Le type de proxy de FourA effectue automatiquement des tentatives via différentes routes lorsqu'une route est bloquée.
- Évolue de manière linéaire. Ajouter 100 produits supplémentaires ne nécessite que 100 appels API de plus, sans aucune modification d'architecture.
Commencer
L'ensemble du pipeline ci-dessus (sans la logique d'alerte) s'exécute en moins de 50 lignes de Python. Et une fois qu'il fonctionne pour 50 produits, passer à 500 se résume à allonger la liste. L'appel API reste le même, le parsing reste le même et la planification reste la même. C'est tout l'intérêt.
Le code d'exemple complet est disponible dans le guide pratique, et la documentation de l'API couvre tous les paramètres dont vous aurez besoin pour le personnaliser.