Wie erstellt man einen Walmart Price Tracker von Grund auf?

walmart price tracker erstellen

Wenn Sie regelmäßig bei Walmart einkaufen, fragen Sie sich vielleicht, wann ein bestimmter Artikel im Ausverkauf ist oder ein Sonderangebot gilt. Jeden Tag manuell die Preise zu überprüfen, kann mühsam sein. Mit ein bisschen Technik, um einen Walmart-Preis-Tracker zu erstellen, können Sie den Prozess automatisieren, um Preisänderungen zu überwachen und benachrichtigt zu werden, wenn der Preis fällt.

Dieser Leitfaden führt Sie Schritt für Schritt durch die Erstellung Ihres eigenen Walmart-Preis-Trackers - von der Datenerfassung und -speicherung bis hin zur Preisüberwachung und automatischen Benachrichtigung. Selbst wenn Sie keine Programmierkenntnisse haben, werden Sie in der Lage sein, mitzumachen und es zum Laufen zu bringen!

Was können Walmart Price Tracker leisten?

Nehmen wir an, Sie planen den Kauf eines neuen Fernsehers bei Walmart, sind sich aber nicht sicher, ob jetzt der beste Zeitpunkt für den Kauf ist. Jeden Tag den Preis manuell zu überprüfen, ist zeitaufwändig. Da kommt ein Preisverfolgungstool gerade recht.

  • Überwachen Sie automatisch den Preis des Produkts 24/7.

  • Führen Sie Aufzeichnungen über historische Preistrends.

  • Sie werden sofort per E-Mail oder SMS benachrichtigt, wenn der Preis fällt.

Was Sie für den Einstieg ins Tracking benötigen

Bevor Sie loslegen, sollten Sie die folgenden Werkzeuge bereithalten:

  1. Python (empfohlene Version 3.8 oder höher) - zum Schreiben und Ausführen des Skripts

  2. Code-Editor (VS Code oder PyCharm) - um das Kodieren einfacher und effizienter zu machen

  3. Walmart Entwickler-Konto (optional) - die Verwendung der offiziellen API bietet mehr Stabilität

  4. Proxy-IPs (optional) - hilft zu vermeiden, dass bei häufigen Anfragen blockiert wird

Erforderliche Python-Bibliotheken installieren

Öffnen Sie Ihr Terminal oder die Eingabeaufforderung und führen Sie den folgenden Befehl aus:

pip install Anfragen beautifulsoup4 selenium pandas Zeitplan smtplib

Wenn Sie die Browser-Automatisierung verwenden möchten, müssen Sie außerdem Folgendes installieren ChromeDriver oder geckodriverabhängig von Ihrem Browser.

Wie man Walmart Produktpreise erhält

Methode 1: Offizielle Walmart API (empfohlen)

Walmart bietet eine Entwickler-API, mit der Sie Produktdaten direkt abrufen können.

Schritt 1: Besorgen Sie sich einen API-Schlüssel

Besuchen Sie das Walmart-Entwicklerportal.

walmart price tracker mit offizieller api bauen

Erstellen Sie ein Konto und beantragen Sie einen API-Schlüssel (die Genehmigung kann einige Zeit dauern).

Schritt 2: Preis mit Python abrufen

Einfuhrgesuche

API_KEY = "IHR_SCRAPERAPI_KEY"
PRODUCT_URL = "https://www.walmart.com/ip/123456789" # Ersetzen Sie durch Ihre Produkt-URL

def get_price():  
    response = requests.get(
        f "http://api.scraperapi.com?api_key={API_KEY}&url={PRODUCT_URL}"
    )  
    # Preis aus HTML extrahieren (Beispiel vereinfacht)
    return "29.99" # Ersetzen durch die eigentliche Parsing-Logik

Preis = get_price()
print(f "Aktueller Preis: ${Preis}") 

Dieser Weg ist zwar tabellarisch, legal und wird seltener blockiert, erfordert aber einen API-Zugang und kann Ratenbeschränkungen haben.

Methode 2: Scrapen mit einem Web Crawler (Alternative)

Wenn Sie die API nicht verwenden möchten, können Sie Tools wie Selen oder BeautifulSoup um den Preis direkt von der Produktseite abzurufen.

Beispiel: Automatisches Extrahieren des Preises von der Produktseite mit Selenium

von selenium import webdriver
von selenium.webdriver.chrome.options importieren Optionen

# Headless-Browser einrichten (läuft, ohne ein Fenster zu öffnen)
Optionen = Optionen()
Optionen.add_argument("--headless")
Treiber = webdriver.Chrome(Optionen=Optionen)

product_url = "https://www.walmart.com/ip/123456789" # Ersetzen Sie durch Ihre Produkt-URL
driver.get(produkt_url)

# Suchen Sie das Preiselement (möglicherweise müssen Sie den XPath anpassen)
preis_element = driver.find_element("xpath", '//span[@itemprop="preis"]')
preis = preis_element.text
print(f "Aktueller Preis: {Preis}")

driver.quit() # Schließen Sie den Browser

Walmart verfügt über einen Anti-Scraping-Schutz und häufige Anfragen können dazu führen, dass Ihre IP blockiert wird. Auf diese Weise kann das Hinzufügen time.sleep(5) zwischen den Anfragen, um eine zu schnelle Belastung der Website zu vermeiden, und die Verwendung rotierender Proxy-IPs werden für die Zuverlässigkeit empfohlen.

Umgehung der Walmart-Scraping-Erkennung [Optional]

Die empfohlene Abfragehäufigkeit für eine einzelne IP-Adresse beträgt nicht mehr als 1 Mal pro Minute ohne einen Anti-Bot-Schutz auszulösen. Wenn Sie Walmart-Seiten häufig besuchen und abrufen, sollten Sie daher Proxys verwenden, die saubere IPs und das regelmäßige Ändern der UA sind unerlässlich, um zu vermeiden, dass Sie geflaggt werden und IP-Sperren erhalten. Hier erfahren Sie, wie Sie Ihre Walmart-Preis-Tracker-Einrichtung verwalten und optimieren können.

(1) Verwaltung des Proxy-Pools

Da Ihre IP-Adresse aufgrund zu vieler Scraping-Anfragen vorübergehend blockiert werden kann, was zu einer 403 Forbidden-Fehlermeldung führt, und die Preise für Walmart-Produkte je nach Region variieren können - beispielsweise können US-amerikanische und kanadische Nutzer unterschiedliche Preise für denselben Artikel sehen -, ist ein riesiger Proxy-Pool mit Millionen von IPs zum Rotieren erforderlich.

Das beeindruckende Netzwerk von OkeyProxy verfügt über mehr als 150 Millionen echte IPs aus mehr als 200 Ländern. Unterstützt alle Geräte und Anwendungsfälle, einschließlich automatischer IP-Rotation zum Scrapen und Verfolgen von Daten. Dieser Proxy-Dienst bietet wettbewerbsfähige Preise und ist damit die erste Wahl für Proxy-Scraper für Privatanwender. Er bietet ein $3/GB PROXY TRIAL an, das es jedem Benutzer ermöglicht, die Zuverlässigkeit, Geschwindigkeit und Vielseitigkeit von Scraping-Proxys zu erleben.

# Proxy-Pool - ersetzen Sie ihn durch Ihre eigenen Proxy-IPs
PROXY_POOL = [
    "http://45.123.123.123:8080",
    "http://67.234.234.234:8888",
    "http://89.111.222.333:3128"
]

# Zufällige Auswahl und Validierung eines Proxys aus dem Pool
def rotate_proxy():
    while True:
        proxy = random.choice(PROXY_POOL)
        if check_proxy(proxy):
            return proxy
        else:
            print(f "Proxy {proxy} ist nicht verfügbar, versuche einen anderen...")
            PROXY_POOL.remove(proxy)
    raise Exception("Keine gültigen Proxys mehr im Pool.")

# Prüfen Sie, ob ein Proxy funktioniert, indem Sie eine Testanfrage stellen
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
    außer:
        return False

(2) Anti-Bot-Strategien

Anforderungskopfzeilen randomisieren

Um zu vermeiden, dass Sie als Bot erkannt werden, wechseln Sie Ihren User-Agent bei jeder Anfrage:

from fake_useragent import UserAgent

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

Zufällige Verzögerungen zwischen Anfragen hinzufügen

Durch die Einführung einer Verzögerung zwischen den Anfragen wird das menschliche Verhalten nachgeahmt:

Zeit importieren
Zufallszahlen importieren

time.sleep(random.uniform(3, 10)) # 3-10 Sekunden vor der nächsten Anfrage warten

Diese Strategien tragen dazu bei, das Risiko einer Blockierung zu verringern und die Zuverlässigkeit Ihres Scrapers mit der Zeit zu verbessern.

Speichern der Walmart-Produktpreisentwicklung

Nachdem Sie den Preis ermittelt haben, ist es wichtig, ihn zu speichern, damit Sie historische Trends im Laufe der Zeit verfolgen können.

Methode 1: Daten in einer SQLite-Datenbank speichern

importiere sqlite3
from datetime import datetime

# Erstellen oder Verbinden mit einer Datenbank
conn = sqlite3.connect("walmart_prices.db")
Kursor = conn.kursor()

# Eine Tabelle erstellen, wenn sie nicht existiert
cursor.execute('''
    CREATE TABLE IF NOT EXISTS preise (
        produkt_id TEXT,
        preis REAL,
        datum TEXT
    )
''')

# Einfügen der neuen Preisdaten
cursor.execute("INSERT INTO Preise VALUES (?, ?, ?)",
               (produkt_id, preis, datetime.now()))
conn.commit()
conn.close()

Die Speicherung der Daten in einer lokalen SQLite-Datenbank nach dem Scraping von Walmart.com ist leichtgewichtig und erstellt automatisch Dateien, ohne dass zusätzliche Software installiert werden muss.

Methode 2: Daten in einer CSV-Datei speichern (einfacher)

import pandas as pd
from datetime import datetime

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

df = pd.DataFrame(data)
df.to_csv("preise.csv", mode="a", header=False) # Modus anhängen

Beide Methoden funktionieren gut - verwenden Sie eine Datenbank für erweiterte Abfragen oder CSV für die Einfachheit.

Tägliche Warnungen vor Walmart-Preisverläufen

1. Prüfen Sie die Walmart-Preise für eine bestimmte Route

Verwenden Sie die Zeitplan Bibliothek, um Ihr Preisprüfungsskript jeden Tag zu einer bestimmten Zeit automatisch auszuführen:

Zeitplan importieren
Importzeit

def check_price():
    # Platzieren Sie hier Ihren Code zum Scraping und zur Preisüberprüfung
    print("Preis prüfen...")

# Führen Sie die Aufgabe jeden Tag um 9:00 Uhr aus
schedule.every().day.at("09:00").do(check_price)

while True:
    schedule.run_pending()
    time.sleep(60) # Jede Minute auf geplante Aufgaben prüfen

2. E-Mail-Benachrichtigungen bei Preisrückgang senden

smtplib importieren
from email.mime.text import MIMEText

def send_email(preis):
    Absender = "[email protected]"
    Empfänger = "[email protected]"
    passwort = "ihr_email_passwort_oder_app_passwort"

    msg = MIMEText(f "Der Produktpreis ist gefallen! Neuester Preis: ${Preis}")
    msg["Betreff"] = "Walmart Preisalarm"
    msg["Von"] = Absender
    msg["To"] = Empfänger

    with smtplib.SMTP("smtp.gmail.com", 587) as server:
        server.starttls()
        server.login(Absender, Passwort)
        server.sendmail(Absender, Empfänger, msg.as_string())

Dann, innerhalb Ihrer check_price() lösen Sie den Alarm aus, wenn der Kurs unter Ihrem Zielwert liegt:

if price = 100: # Legen Sie die gewünschte Preisschwelle fest
    send_email(preis)

Walmart Price Tracker - Einsatz in der Cloud

Wenn Sie möchten, dass Ihr Walmart Price Tracker kontinuierlich oder zu geplanten Zeiten läuft, können Sie das Skript mit einer der folgenden Optionen in der Cloud bereitstellen:

  • GitHub-Aktionen - Kostenlos und ideal, um Skripte einmal am Tag auszuführen

  • Cloud-Server (AWS, Azure, etc.) - Ideal für die Echtzeitüberwachung

  • PythonAnywhere - Einsteigerfreundlich, obwohl die kostenlose Version einige Einschränkungen aufweist

Hier ist ein Beispiel, dass Scraping-Tool auf Github nach Walmart Preisverfolgung, die häufiger ist hochladen.

Walmart Price Tracker innerhalb von GitHub einplanen

Erstellen Sie erstens eine GitHub-Repository.

Dann fügen Sie .github/workflows/tracker.yml:

Name: Walmart Price Tracker

an:
  Zeitplan:
    - cron: "0 14 * * * *" # 2 PM UTC (für Ihre Zeitzone anpassen)

Jobs:
  run-tracker:
    läuft auf: ubuntu-latest
    steps:
      - verwendet: actions/checkout@v4
      - Name: Run-Tracker
        ausführen: python tracker.py

Bonusfunktionen zur Verfolgung des Walmart-Artikelpreises

1. Überwachen und Scrapen der Daten mehrerer Walmart-Internetseiten

Sie können problemlos mehrere Produkte verfolgen, indem Sie sie in einer Liste speichern und in einer Schleife durchgehen:

PRODUCT_LIST = [
    {"id": "123456789", "name": "Kabellose Ohrstöpsel", "threshold": 50},
    {"id": "987654321", "name": "Intelligente Uhr", "Schwellenwert": 200}
]

def monitor_multiple_products():
    for product in PRODUCT_LIST:
        preis = get_price(produkt["id"])
        if preis = produkt["schwellenwert"]:
            send_email(f"{Produkt['Name']} ist gerade auf ${Preis} gefallen!")

Auf diese Weise erhalten Sie für jeden Artikel, den Sie beobachten, eine eigene Benachrichtigung - besonders praktisch bei großen Verkaufsaktionen!

2. Visualisieren Sie Preistrends aus gespeicherten Tracking-Daten

Möchten Sie analysieren, wie sich der Preis im Laufe der Zeit verändert? Wenn Sie die Preisdaten in einer CSV- oder SQLite-Datenbank speichern, können Sie die historischen Trends einfach mit Pandas und matplotlib:

import pandas as pd
importiere matplotlib.pyplot as plt
importiere sqlite3

def plot_price_history():
    # Laden der Daten aus der SQLite-Datenbank (oder Sie können pd.read_csv für CSV-Dateien verwenden)
    conn = sqlite3.connect('walmart_prices.db')
    df = pd.read_sql_query("SELECT * FROM preise", conn)
    conn.close()

    # Konvertierung der Datumsspalte in das Datetime-Format
    df['Datum'] = pd.to_datetime(df['Datum'])

    # Optional: Filter für ein bestimmtes Produkt
    produkt_id = "123456789"
    product_df = df[df['product_id'] == product_id]

    # Darstellung
    plt.figure(figsize=(10, 5))
    plt.plot(product_df['date'], product_df['price'], marker='o', linestyle='-')
    plt.title(f "Preistrend für Produkt {product_id}")
    plt.xlabel("Datum")
    plt.ylabel("Preis (USD)")
    plt.grid(True)
    plt.xticks(rotation=45)
    plt.tight_layout()
    plt.savefig("Preis_Geschichte.png")
    plt.show()

Sie können diese Funktion so planen, dass sie wöchentlich ausgeführt wird und die Tabelle automatisch an Ihren Posteingang gesendet wird!

3. Erstellen eines Web-Dashboards für den Walmart Price Tracker

Sie können ein einfaches Walmart Price Tracker Panel erstellen, indem Sie Flachmann oder Streamlit zur Anzeige von Produktpreisen und Trends in einer Weboberfläche.

Flask stellt beispielsweise HTML-Vorlagen zur Verfügung, in denen Sie aktuelle Preise, historische Trends (als Bilder oder Diagramme) und mehr anzeigen können. Hier ist ein einfaches Beispiel für den Anfang:

from flask import Flask, render_template
importiere pandas als pd
importiere sqlite3

app = Flask(__name__)

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

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

Danach erstellen Sie eine einfache HTML-Vorlage (templates/index.html) zur Anzeige der Produktpreise.

flasche walmart preisverfolgung html vorlage

Häufig gestellte Fragen (FAQ)

Q1: Warum wird mein Scraper blockiert?

Sie senden zu viele Anfragen in einem kurzen Zeitraum. Verwenden Sie Elite-Vertreter um die IP-Adressen zu wechseln und eine zufällige Verzögerung zwischen den einzelnen Anfragen einzufügen, damit die Raten nicht überschritten werden:

time.sleep(random.randint(2, 5)) # 2-5 Sekunden vor der nächsten Anfrage warten

F2: Wie kann ich die Produkt-ID finden?

Rufen Sie die Walmart-Produktseite auf. Die Nummer, die in der URL nach /ip/ steht, ist die Produkt-ID. Zum Beispiel:

https://www.walmart.com/ip/123456789 → Die Produkt-ID lautet 123456789

F3: Kann ich mehrere Produkte gleichzeitig verfolgen?

Ja! Erstellen Sie einfach eine Liste von Produkt-IDs und gehen Sie sie in einer Schleife durch:

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

for product_id in product_list:
    preis = get_price(produkt_id)
    preis_speichern(produkt_id, preis)

Sie können diese Funktion auch so erweitern, dass Sie für jedes Produkt eine eigene Benachrichtigung versenden, wenn dessen Preis fällt.

Einpacken

Das war's schon! Sie haben jetzt einen vollautomatischen Walmart Preis-Tracker, der die Preise rund um die Uhr überwacht und Sie sofort benachrichtigt, wenn es einen Rückgang gibt.

Wenn Sie einen walmart.com Price Tracker in großem Umfang einsetzen, ist es wichtig, die robots.txt-Richtlinien von Walmart zu beachten (Hier können Sie die Regeln einsehen) und Proxy-IPs rotieren entsprechend.

Mit Ihrem maßgeschneiderten Walmart-Preis-Tracker können Sie die Preise im Schlaf überprüfen - und verpassen nie wieder ein Angebot!

Mehr erfahren

Erstklassiger Socks5/Http(s) Proxy-Dienst

  • Skalierbare Pläne: Statisch/Rotierende Wohnsitzvollmachten
  • Nahtlose Integration: Win/iOS/Android/Linux
  • Hohe Sicherheit: Ideal für Antidetect-Browser, Emulatoren, Scraper usw.
  • Zuverlässige Leistung: Schnelle Übertragung und geringe Latenzzeit
Kostenlos ausprobierenPfeil-nach-rechts
24/7 Kundenspezifischer Service
150 M+ IP-Adresse
Stadt/lSP Targeting
API-Unterstützung