Comment créer un outil de suivi des prix Walmart à partir de zéro ?

créer un suivi des prix walmart

Si vous faites régulièrement des achats chez Walmart, vous vous demandez peut-être quand un article sera en vente ou fera l'objet d'une offre spéciale. Vérifier manuellement les prix tous les jours peut être fastidieux, mais avec un peu de technologie pour créer un traqueur de prix Walmart, vous pouvez automatiser le processus pour surveiller les changements de prix et être averti lorsque le prix baisse.

Contenu cacher

Ce guide vous accompagnera pas à pas dans la création de votre propre outil de suivi des prix Walmart, depuis la collecte et le stockage des données jusqu'au suivi des prix et aux alertes automatiques. Même si vous êtes novice en programmation, vous serez en mesure de suivre le guide et de le faire fonctionner !

Que peuvent faire les traqueurs de prix de Walmart ?

Imaginons que vous ayez l'intention d'acheter une nouvelle télévision chez Walmart, mais que vous ne soyez pas sûr que ce soit le meilleur moment pour le faire. Vérifier le prix manuellement chaque jour prend beaucoup de temps. C'est là qu'un outil de suivi des prix s'avère utile.

  • Surveillez automatiquement le prix du produit 24 heures sur 24, 7 jours sur 7.

  • Conservez une trace de l'évolution historique des prix.

  • Nous vous avertissons instantanément par e-mail ou par SMS lorsque le prix baisse.

Ce dont vous aurez besoin pour commencer le suivi

Avant de vous lancer, assurez-vous d'avoir les outils suivants à portée de main :

  1. Python (version recommandée 3.8 ou supérieure) - pour l'écriture et l'exécution du script

  2. Editeur de code (VS Code ou PyCharm) - pour faciliter le codage et le rendre plus efficace

  3. Compte développeur Walmart (optionnel) - l'utilisation de l'API officielle offre plus de stabilité

  4. IP proxy (facultatif) - permet d'éviter d'être bloqué lors de requêtes fréquentes

Installer les bibliothèques Python requises

Ouvrez votre terminal ou votre invite de commande et exécutez la commande suivante :

pip install requests beautifulsoup4 selenium pandas schedule smtplib

Si vous envisagez d'utiliser l'automatisation du navigateur, vous devrez également installer ChromeDriver ou geckodriverselon votre navigateur.

Comment obtenir les prix des produits Walmart

Méthode 1 : API officielle de Walmart (Recommandé)

Walmart propose une API pour les développeurs qui vous permet d'obtenir directement des données sur les produits.

Étape 1 : Obtenir une clé API

Visitez le portail des développeurs de Walmart.

construire un traqueur de prix walmart avec l'api officielle

Créez un compte et demandez une clé API (l'approbation peut prendre un certain temps).

Étape 2 : Obtenir le prix à l'aide de Python

demandes d'importation

API_KEY = "YOUR_SCRAPERAPI_KEY"
PRODUCT_URL = "https://www.walmart.com/ip/123456789" # Remplacer par l'URL de votre produit

def get_price() :  
    response = requests.get(
        f "http://api.scraperapi.com?api_key={API_KEY}&url={PRODUCT_URL}"
    )  
    # Extraire le prix du code HTML (exemple simplifié)
    return "29.99" # Remplacer par la logique d'analyse réelle

prix = get_price()
print(f "Prix actuel : ${prix}") 

Bien que cette façon de procéder soit légale et moins susceptible d'être bloquée, elle nécessite un accès à l'API et peut être soumise à des limites de débit.

Méthode 2 : Scraper à l'aide d'un robot d'indexation (alternative)

Si vous ne souhaitez pas utiliser l'API, vous pouvez utiliser des outils tels que Sélénium ou BeautifulSoup pour récupérer le prix directement sur la page du produit.

Exemple : Extraire automatiquement le prix d'une page produit à l'aide de Selenium

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# Mise en place d'un navigateur headless (s'exécute sans ouvrir de fenêtre)
options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)

product_url = "https://www.walmart.com/ip/123456789" # Remplacer par l'URL de votre produit
driver.get(product_url)

# Trouvez l'élément de prix (vous devrez peut-être modifier le XPath)
price_element = driver.find_element("xpath", '//span[@itemprop="price"]')
price = price_element.text
print(f "Prix actuel : {prix}")

driver.quit() # Fermer le navigateur

Walmart dispose de protections anti-scraping et les demandes fréquentes peuvent entraîner le blocage de votre IP. Ainsi, l'ajout de time.sleep(5) Il est recommandé d'espacer les requêtes pour éviter que le site ne soit touché trop rapidement et d'utiliser des adresses IP de proxy tournantes pour plus de fiabilité.

Contournement de la détection de Walmart Scraping [Optionnel]

La fréquence de demande recommandée pour une seule adresse IP est de pas plus d'une fois par minute sans déclencher les protections anti-bots. Par conséquent, lorsque vous visitez et grattez fréquemment les pages de Walmart, l'utilisation de proxies offrant une protection contre les robots est recommandée. Nettoyer les adresses IP et changer régulièrement d'UA sont essentiels pour éviter d'être repéré et de se voir interdire l'accès à la propriété intellectuelle. Voici comment gérer et optimiser la configuration de votre traqueur de prix Walmart.

(1) Gestion de la réserve de procurations

En effet, votre adresse IP peut être temporairement bloquée en raison d'un trop grand nombre de demandes de scraping, ce qui entraîne une erreur 403 Forbidden, et les prix des produits Walmart peuvent varier selon la région - par exemple, les utilisateurs américains et canadiens peuvent voir des prix différents pour le même article -, ce qui nécessite un vaste pool de serveurs mandataires avec des millions d'IP à faire tourner.

Le réseau impressionnant d'OkeyProxy comprend plus de 150 millions d'adresses IP réelles, couvrant plus de 200 pays. Il prend en charge tous les appareils et tous les cas d'utilisation, y compris la rotation automatique des IP pour le scraping et le suivi des données. Ce service proxy offre des prix compétitifs, ce qui le positionne comme le meilleur choix pour le scraper proxy résidentiel. Il offre un essai PROXY de $3/GB, permettant à tous les utilisateurs d'expérimenter la fiabilité, la vitesse et la polyvalence des proxys de scraping.

# Proxy pool - remplacer par vos propres IP proxy
PROXY_POOL = [
    "http://45.123.123.123:8080",
    "http://67.234.234.234:8888",
    "http://89.111.222.333:3128"
]

# Sélection aléatoire et validation d'un proxy dans le pool
def rotate_proxy() :
    while True :
        proxy = random.choice(PROXY_POOL)
        if check_proxy(proxy) :
            return proxy
        else :
            print(f "Le proxy {proxy} n'est pas disponible, essayez-en un autre...")
            PROXY_POOL.remove(proxy)
    raise Exception("Il n'y a plus de proxy valide dans le pool.")

# Vérifier qu'un proxy fonctionne en effectuant une requête de test
def check_proxy(proxy) :
    try :
        test_url = "https://httpbin.org/ip"
        response = requests.get(test_url, proxies={"http" : proxy}, timeout=5)
        return response.status_code == 200
    except :
        return False

(2) Stratégies anti-bots

Randomiser les en-têtes des requêtes

Pour éviter d'être détecté comme un robot, modifiez votre User-Agent à chaque demande :

from fake_useragent import UserAgent

ua = UserAgent()
headers = {"User-Agent" : ua.random}

Ajouter des délais aléatoires entre les demandes

L'introduction d'un délai entre les demandes permet d'imiter le comportement humain :

Importation du temps
import random

time.sleep(random.uniform(3, 10)) # Attendre 3 à 10 secondes avant la prochaine requête

Ces stratégies permettent de réduire le risque de blocage et d'améliorer la fiabilité de votre scraper au fil du temps.

Sauvegarde de l'historique des prix des produits Walmart

Après avoir obtenu le prix, il est important de le stocker afin de pouvoir suivre les tendances historiques au fil du temps.

Méthode 1 : Stocker les données dans une base de données SQLite

import sqlite3
from datetime import datetime

# Créer ou se connecter à une base de données
conn = sqlite3.connect("walmart_prices.db")
cursor = conn.cursor()

# Créer une table si elle n'existe pas
cursor.execute(''''
    CREATE TABLE IF NOT EXISTS prices (
        product_id TEXT,
        prix REAL,
        date TEXT
    )
''')

# Insérer les nouvelles données de prix
cursor.execute("INSERT INTO prices VALUES ( ?, ?, ?)",
               (product_id, price, datetime.now()))
conn.commit()
conn.close()

Le stockage des données dans une base de données SQLite locale après le scraping de Walmart.com est léger et crée automatiquement des fichiers, sans qu'il soit nécessaire d'installer un logiciel supplémentaire.

Méthode 2 : Stocker les données dans un fichier CSV (plus simple)

import pandas as pd
from datetime import datetime

data = {
    "product_id" : [product_id],
    "prix" : [prix],
    "date" : [datetime.now()]
}

df = pd.DataFrame(data)
df.to_csv("prices.csv", mode="a", header=False) # Append mode

Les deux méthodes fonctionnent bien - utilisez une base de données pour des requêtes plus avancées ou un fichier CSV pour plus de simplicité.

Alertes quotidiennes sur les prix pratiqués par Walmart

1. Vérifier les prix de Walmart en fonction de certains itinéraires

Utiliser le calendrier pour lancer automatiquement votre script de vérification des prix à une heure précise chaque jour :

importation de l'horaire
heure d'importation

def check_price() :
    # Placez votre code de recherche et de vérification des prix ici
    print("Vérification du prix...")

# Exécutez la tâche tous les jours à 9h00
schedule.every().day.at("09:00").do(check_price)

while True :
    schedule.run_pending()
    time.sleep(60) # Vérifier toutes les minutes la présence de tâches programmées

2. Envoi de notifications par courrier électronique en cas de baisse de prix

import smtplib
from email.mime.text import MIMEText

def send_email(prix) :
    sender = "[email protected]"
    destinataire = "[email protected]"
    password = "your_email_password_ou_app_password"

    msg = MIMEText(f "Le prix du produit a baissé ! Dernier prix : ${prix}")
    msg["Subject"] = "Alerte prix Walmart"
    msg["From"] = expéditeur
    msg["To"] = récepteur

    avec smtplib.SMTP("smtp.gmail.com", 587) comme serveur :
        server.starttls()
        server.login(sender, password)
        server.sendmail(sender, receiver, msg.as_string())

Ensuite, dans votre check_price() déclenche l'alerte lorsque le prix est inférieur à votre objectif :

if price = 100 : # Fixez le seuil de prix souhaité
    send_email(prix)

Déploiement du système de suivi des prix de Walmart dans le nuage

Si vous souhaitez que votre traqueur de prix Walmart fonctionne en continu ou à des heures programmées, vous pouvez déployer le script dans le nuage à l'aide de l'une des options suivantes :

  • Actions GitHub - Gratuit et idéal pour exécuter des scripts une fois par jour

  • Serveurs en nuage (AWS, Azure, etc.) - Idéal pour la surveillance en temps réel

  • PythonAnywhere - Convivialité pour les débutants, même si la version gratuite présente certaines limites

Voici un exemple d'outil de scraping téléchargé sur Github après le suivi des prix de Walmart, ce qui est plus courant.

Programmation des traqueurs de prix Walmart dans GitHub

Tout d'abord, créez un Dépôt GitHub.

Ajouter ensuite .github/workflows/tracker.yml:

nom : Walmart Price Tracker

le :
  calendrier :
    - cron : "0 14 * * *" # 2 PM UTC (ajuster pour votre fuseau horaire)

jobs :
  run-tracker :
    runs-on : ubuntu-latest
    steps :
      - uses : actions/checkout@v4
      - name : Run Tracker
        run : python tracker.py

Fonctionnalités supplémentaires pour suivre le prix des articles Walmart

1. Surveiller et gratter les données de plusieurs clients Walmart

Vous pouvez facilement suivre plusieurs produits en les stockant dans une liste et en les parcourant en boucle :

PRODUCT_LIST = [
    {"id" : "123456789", "name" : "Ecouteurs sans fil", "seuil" : 50},
    {"id" : "987654321", "name" : "Montre intelligente", "seuil" : 200}
]

def monitor_multiple_products() :
    for product in PRODUCT_LIST :
        price = get_price(product["id"])
        si prix = produit["seuil"] :
            send_email(f"{produit['nom']} vient de passer à ${prix} !")

Ainsi, vous recevrez des alertes distinctes pour chaque article que vous surveillez, ce qui est très pratique lors des grandes ventes !

2. Visualiser les tendances de prix à partir des données de suivi enregistrées

Vous souhaitez analyser l'évolution des prix dans le temps ? Si vous stockez les données de prix dans une base de données CSV ou SQLite, il vous suffit de tracer les tendances historiques à l'aide de la fonction pandas et matplotlib:

import pandas as pd
import matplotlib.pyplot sous le nom de plt
import sqlite3

def plot_price_history() :
    # Chargement des données depuis la base de données SQLite (ou vous pouvez utiliser pd.read_csv pour les fichiers CSV)
    conn = sqlite3.connect('walmart_prices.db')
    df = pd.read_sql_query("SELECT * FROM prices", conn)
    conn.close()

    # Convertir la colonne date au format datetime
    df['date'] = pd.to_datetime(df['date'])

    # Facultatif : filtre pour un produit spécifique
    product_id = "123456789"
    product_df = df[df['product_id'] == product_id]

    # Tracé
    plt.figure(figsize=(10, 5))
    plt.plot(product_df['date'], product_df['prix'], marker='o', linestyle='-')
    plt.title(f "Tendance des prix pour le produit {product_id}")
    plt.xlabel("Date")
    plt.ylabel("Prix (USD)")
    plt.grid(True)
    plt.xticks(rotation=45)
    plt.tight_layout()
    plt.savefig("price_history.png")
    plt.show()

Vous pouvez programmer cette fonction pour qu'elle s'exécute chaque semaine et envoyer automatiquement le graphique dans votre boîte aux lettres électronique !

3. Création d'un tableau de bord Web de suivi des prix de Walmart

Vous pouvez créer un panneau simple de suivi des prix Walmart en utilisant Flacon ou Éclairé par la lumière du jour pour afficher les prix et les tendances des produits dans une interface web.

Par exemple, Flask propose des modèles HTML dans lesquels vous pouvez afficher les prix actuels, les tendances historiques (sous forme d'images ou de graphiques), etc. Voici un exemple de base pour commencer :

from flask import Flask, render_template
import pandas as pd
import sqlite3

app = Flask(__name__)

@app.route("/")
def index() :
    conn = sqlite3.connect("walmart_prices.db")
    df = pd.read_sql_query("SELECT * FROM prices", conn)
    conn.close()

    latest_prices = df.sort_values("date").groupby("product_id").last().reset_index()
    return render_template("index.html", data=latest_prices.to_dict(orient="records"))

Ensuite, créez un modèle HTML simple (templates/index.html) pour afficher les prix des produits.

flask walmart price tracking html template

Foire aux questions (FAQ)

Q1 : Pourquoi mon scraper est-il bloqué ?

Vous envoyez trop de demandes en peu de temps. Utiliser mandataires d'élite pour alterner les adresses IP et ajouter un délai aléatoire entre chaque demande afin d'éviter d'atteindre les limites de débit :

time.sleep(random.randint(2, 5)) # Attendre 2 à 5 secondes avant la prochaine requête

Q2 : Comment trouver l'identifiant du produit ?

Allez sur la page du produit Walmart - le numéro qui vient après /ip/ dans l'URL est l'ID du produit. Par exemple, le numéro qui suit /ip/ dans l'URL est l'identifiant du produit :

https://www.walmart.com/ip/123456789 → L'identifiant du produit est 123456789

Q3 : Puis-je suivre plusieurs produits à la fois ?

Oui ! Il suffit de créer une liste d'identifiants de produits et de les parcourir en boucle :

product_list = ["123", "456", "789"]

pour product_id dans product_list :
    prix = get_price(product_id)
    save_price(product_id, price)

Vous pouvez également étendre ce système pour envoyer des alertes distinctes pour chaque produit en cas de baisse de prix.

Conclusion

C'est tout ! Vous disposez maintenant d'un outil de suivi des prix Walmart entièrement automatisé qui surveille les prix 24 heures sur 24 et 7 jours sur 7 et qui vous avertit instantanément en cas de baisse.

Si vous avez déployé un traqueur de prix walmart.com à grande échelle, il est important de respecter les directives robots.txt de Walmart (Voir le règlement ici) et rotation des IP proxy en conséquence.

Avec votre traqueur de prix Walmart personnalisé, vous pouvez vérifier les prix pendant que vous dormez - et ne plus jamais manquer une bonne affaire !

En savoir plus

Service Proxy Socks5/Http(s) de premier ordre

  • Plans évolutifs : Statique/Rotation des procurations résidentielles
  • Intégration transparente : Win/iOS/Android/Linux
  • Haute sécurité : Idéal pour la détection des navigateurs, des émulateurs, des scrapeurs, etc.
  • Performance fiable : Transfert rapide et faible latence
Essai gratuitflèche-droite
Service personnalisé 24/7
150 M+ Adresse IP
Ciblage des villes et des PS
Support API