Anleitung zum Scraping der Walmart-Website

In dieser Schritt-für-Schritt-Anleitung erfahren Sie, wie Sie mithilfe von Python und Selenium die Website von Walmart scrapen können. Außerdem stellen wir Ihnen als einfachere Alternative die Web Scraper IDE von Bright Data vor.
12 min read
How to scrape from Walmart

Walmart ist sowohl gemessen am Umsatz als auch hinsichtlich der Anzahl der Mitarbeiter der größte Konzern der Welt. Anders als allgemein angenommen, ist Walmart dabei viel mehr als nur ein Einzelhandelsunternehmen: Der Konzern unterhält eine der weltweit umfangreichsten E-Commerce-Websites, die eine hervorragende Informationsquelle in Sachen Produkte darstellt. Da sich die Website-Daten aufgrund der riesigen Produktpalette jedoch unmöglich von einer Person manuell erfassen lassen, dient uns die Website als idealer praktischer Anwendungsfall für das so genannte Web Scraping.  

Dank Web Scraping können Sie schnell Daten (z. B. Produktname, Preis, Beschreibung, Bilder und Bewertungen) zu Tausenden von Walmart-Produkten abrufen und in einem beliebigen für Sie sinnvollen Format speichern. Die gescrapten Walmart-Daten ermöglichen es Ihnen, die Preise unterschiedlicher Produkte und deren Lagerbestand zu beobachten, Marktbewegungen und Kundenverhalten zu analysieren und diverse Anwendungen zu erstellen.

In diesem Artikel stellen wir Ihnen zwei höchst unterschiedliche Vorgehensweisen zum Scrapen von Walmart.com vor. Zunächst lernen Sie Schritt für Schritt, wie Sie die Walmart-Website mithilfe von Python und Selenium – einem Tool, das in erster Linie für die Automatisierung von Webanwendungen zu Testzwecken eingesetzt wird – scrapen können. Anschließend erfahren Sie, wie Sie die gleiche Aufgabe mit dem Walmart Scraper von Bright Data noch einfacher erledigen können.

Scrapen der Walmart-Website

Wie Sie vielleicht wissen, gibt es zahlreiche Möglichkeiten, Websites wie z. B. die von Walmart zu scrapen. Eine dieser Methoden besteht in der Verwendung von Python und Selenium.

Anleitung zum Scrapen der Walmart-Website mit Python und Selenium

Python ist in puncto Web Scraping eine der beliebtesten Programmiersprachen. Selenium hingegen wird vorwiegend für die Automatisierung von Tests verwendet. Aufgrund seiner Fähigkeit zur Automatisierung von Webbrowsern kann es jedoch auch beim Web Scraping eingesetzt werden.

Im Grunde genommen simuliert Selenium manuelle Vorgänge in einem Webbrowser. Mithilfe von Python und Selenium können Sie das Öffnen eines Internetbrowsers und einer beliebigen Webseite simulieren und anschließend Informationen von dieser Seite abrufen. Zu diesem Zweck wird ein WebDriver verwendet, der zur Steuerung von Webbrowsern dient.

Falls Sie Selenium noch nicht installiert haben, müssen Sie sowohl die Selenium-Bibliothek als auch einen Browser-Treiber installieren. Eine entsprechende Anleitung steht Ihnen in der Selenium-Dokumentation zur Verfügung.

Aufgrund seiner großen Beliebtheit findet auch der ChromeDriver in diesem Artikel Berücksichtigung, wobei die Schritte unabhängig vom Treiber die gleichen sind.

Im Folgenden erfahren Sie, wie Sie Python und Selenium zur Durchführung einiger gängiger Web-Scraping-Aufgaben verwenden können:

Suche nach Produkten

Um Selenium zur Simulation der Suche nach Walmart-Produkten verwenden zu können, müssen Sie das Tool zunächst importieren. Dazu können Sie den folgenden Code verwenden:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

Nach dem Import von Selenium wird im nächsten Schritt ein Webbrowser (in diesem Fall Chrome) damit geöffnet. Sie können nach Wunsch auch einen anderen Browser wählen. Nachdem ein Browser geöffnet wurde, sind die darauffolgenden Schritte stets identisch. Das Öffnen eines Browsers ist ganz einfach: Führen Sie dazu den folgenden Code als Python-Skript oder in einem Jupyter-Notizbuch aus:

s=Service('/path/to/chromedriver')
driver = webdriver.Chrome(service=s)

Dieser einfache Code bewirkt schlicht und einfach, dass Chrome geöffnet wird. Die Ausgabe sieht folgendermaßen aus:

Scrapen der Walmart-Website

Nachdem Sie Chrome geöffnet haben, rufen Sie nun die Homepage von Walmart auf, wozu Sie folgenden Code verwenden können:

driver.get("https://www.walmart.com")
Screenshot der Walmart-Website

Wie im Screenshot zu sehen ist, wird damit die Website Walmart.com aufgerufen.

Als Nächstes sehen wir uns den Quellcode der Seite mithilfe des Werkzeugs „Untersuchen“ genauer an. Dieses Werkzeug ermöglicht es Ihnen, jedes beliebige Element auf einer Webseite zu untersuchen. Sie können damit den HTML- und CSS-Code einer beliebigen Webseite anzeigen (und sogar bearbeiten).

Da wir hier nach einem Produkt suchen wollen, navigieren Sie zunächst zur Suchleiste, klicken mit der rechten Maustaste darauf und wählen „Untersuchen“. Suchen Sie das Eingabe-Tag mit dem Attribut type gleich search. Dies ist die Suchleiste, in die der Suchbegriff einzugeben ist. Suchen Sie dann das Attribut name und sehen Sie sich seinen Wert an. In diesem Fall sehen Sie, dass das Attribut name den Wert q hat:

Untersuchen der Walmart-Seite

Zur Eingabe einer Suchanfrage in der Suchleiste können Sie folgenden Code verwenden:

search = driver.find_element("name", "q")
search.send_keys("Gaming Laptops")

Dieser Code gibt die Suchanfrage Gaming Laptops ein. Sie können jedoch jede beliebige Suchphrase verwenden, indem Sie den Begriff „Gaming Laptops“ ein. Sie können jedoch jede beliebige Suchphrase verwenden, indem Sie den Begriff „Gaming Laptops“ durch einen beliebigen anderen Begriff ersetzen:

Eingabe eines Suchbegriffs in die Walmart-Suchleiste mithilfe von Selenium

Bitte beachten Sie, dass der obige Code den Suchbegriff nur in die Suchleiste einträgt, aber nicht die entsprechende Suche startet. Um die Suche nach dem gewünschten Begriff durchzuführen, wird folgende Codezeile benötigt:

search.send_keys(Keys.ENTER)

Die Ausgabe sieht folgendermaßen aus:

Abrufen von Suchergebnissen mithilfe von Selenium

Nun sollten Sie sämtliche Treffer für den von Ihnen eingegebenen Suchbegriff erhalten. Um nach einem anderen Begriff zu suchen, müssen Sie lediglich die letzten beiden Zeilen des Codes mit dem gewünschten neuen Suchbegriff ausführen.

Navigieren zu einer Produktseite und Scrapen von Produktinformationen  

Eine weitere gängige Aufgabe, die sich mithilfe von Selenium ausführen lässt, ist das Öffnen der Seite eines bestimmten Produkts und das Abrufen diesbezüglicher Informationen. Sie können beispielsweise den Namen, die Beschreibung, den Preis, die Bewertung oder die Rezensionen des Produkts auslesen.

Nehmen wir an, Sie haben ein Produkt ausgewählt, dessen Informationen Sie scrapen möchten. Öffnen Sie zuerst die Produktseite. Dafür können Sie folgenden Code verwenden (vorausgesetzt, Sie haben Selenium im ersten Beispiel bereits installiert und importiert):

url = "https://www.walmart.com/ip/Acer-Nitro-5-15-6-Full-HD-IPS-144Hz-Display-11th-Gen-Intel-Core-i5-11400H-NVIDIA-GeForce-RTX-3050Ti-Laptop-GPU-16GB-DDR4-512GB-NVMe-SSD-Windows-11-Ho/607988022?athbdg=L1101"
driver.get(url)
Eine mithilfe von Selenium aufgerufene Walmart-Produktseite

Sobald die Seite aufgerufen wurde, müssen Sie das Werkzeug „Untersuchen“ verwenden: Navigieren Sie zu einem beliebigen Element, dessen Informationen Sie scrapen möchten, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Untersuchen“. Wenn Sie beispielsweise den Produkttitel untersuchen, werden Sie feststellen, dass der Titel in einem H1-Tag steht. Da dies der einzige H1-Tag auf der Seite ist, können Sie ihn mithilfe des folgenden Codes auslesen:

title = driver.find_element(By.TAG_NAME, "h1")
print(title.text)
 
>>>'Acer Nitro 5 , 15.6" Full HD IPS 144Hz Display, 11th Gen Intel Core i5-11400H, NVIDIA GeForce RTX 3050Ti Laptop GPU, 16GB DDR4, 512GB NVMe SSD, Windows 11 Home, AN515-57-5700'

Analog dazu können Sie den Preis, die Bewertung und die Anzahl der Rezensionen zu einem Produkt ausfindig machen und scrapen:

price = driver.find_element(By.CSS_SELECTOR, '[itemprop="price"]')
print(price.text)
>>> '$899.00'
 
rating = driver.find_element(By.CLASS_NAME,"rating-number")
print(rating.text)
>>> '(4.6)'
 
number_of_reviews = driver.find_element(By.CSS_SELECTOR, '[itemprop="ratingCount"]')
print(number_of_reviews.text)
>>> '108 reviews'

Beachten Sie bitte, dass Walmart das Scrapen von Daten auf die hier beschriebene Art und Weise erheblich erschwert. Dies liegt an den von Walmart eingesetzten Anti-Spam-Systemen, die aktiv versuchen, Web Scraper zu blockieren. Sollten Sie also feststellen, dass Ihre Web-Scraping-Versuche wiederholt blockiert werden, ist das wahrscheinlich nicht Ihre Schuld, und Sie werden nicht viel dagegen tun können. Die im nächsten Abschnitt vorgestellte Lösung sollte sich in dieser Hinsicht jedoch als wesentlich effektiver erweisen.

Schritt-für-Schritt-Anleitung zum Scraping der Walmart-Website mit Bright Data

Wie Sie feststellen konnten, gestaltet sich das Scrapen der Walmart-Website mit Python und Selenium nicht ganz so einfach. Die Web Scraper IDE von Bright Data liefert Ihnen für das Scrapen dieser Website jedoch eine wesentlich komfortablere Lösung. Dank dieses Tools lassen sich die oben beschriebenen Aufgaben einfacher und effizienter durchführen. Darüber hinaus bietet die Web Scraper IDE den Vorteil, dass Walmart Ihre Versuche nicht unverzüglich blockieren kann.

Um die Web Scraper IDE verwenden zu können, müssen Sie zunächst ein Benutzerkonto bei Bright Data einrichten. Nachdem Sie sich registriert und eingeloggt haben, sehen Sie die folgende Anzeige. Klicken Sie auf die Schaltfläche Datasets & Web Scraper IDE auf der linken Seite:

Bright Data Dashboard

Daraufhin erscheint die folgende Anzeige. Navigieren Sie von dort aus zum Feld My scrapers („Meine Scraper“):

Hier werden Ihre bestehenden Web Scraper (falls vorhanden) angezeigt und Sie haben die Möglichkeit zur Erstellung eines Web Scrapers (IDE). Sollten Sie Bright Data zum ersten Mal verwenden und somit noch über keine Web Scraper verfügen, klicken Sie auf Develop a web scraper (IDE) („Web Scraper erstellen“):

Sie können entweder eine der vorhandenen Vorlagen verwenden oder den Code von Grund auf neu schreiben. Zum Scrapen von Walmart.com klicken Sie auf Start from scratch („Neu beginnen“). Daraufhin wird die Bright Data Web Scraper IDE geöffnet:

Verwendung der Web Scraper IDE

Die Web Scraper IDE umfasst eine Reihe unterschiedlicher Fenster. Im linken oberen Bereich befindet sich das Fenster Interaction code („Interaktionscode“). Wie sein Name bereits andeutet, wird dieses Fenster für die Interaktion mit einer Website verwendet (z. B. zum Navigieren und Scrollen auf der Website, zum Klicken auf Schaltflächen und für diverse sonstige Vorgänge). Darunter befindet sich das Fenster Parser code („Parser-Code“), über das Sie die HTML-Ergebnisse aus der Interaktion mit der Website parsen können. Auf der rechten Seite steht Ihnen eine Vorschau zur Verfügung, um Ihren Code zu testen.

Zusätzlich können Sie in den Code-Einstellungen in der rechten oberen Ecke zwischen unterschiedlichen Worker-Typen auswählen. Sie können zwischen einem Code (der Standardoption) und einem Browser-Worker zum Navigieren und Crawlen der Daten umschalten:

Web Scraper IDE Code-Einstellungen
Verwendung der Web Scraper IDE

Lernen Sie nun, wie Sie die gleichen Daten für dasselbe Produkt wie zuvor mit Python und Selenium abrufen können. Rufen Sie zunächst die Produktseite auf. Dazu können Sie im Fenster Interaction code die folgende Codezeile verwenden:

navigate('https://www.walmart.com/ip/Acer-Nitro-5-15-6-Full-HD-IPS-144Hz-Display-11th-Gen-Intel-Core-i5-11400H-NVIDIA-GeForce-RTX-3050Ti-Laptop-GPU-16GB-DDR4-512GB-NVMe-SSD-Windows-11-Ho/607988022?athbdg=L1101');

Stattdessen können Sie mit navigate(input.url) auch einen veränderbaren Eingabeparameter verwenden. Fügen Sie in diesem Fall die zu scrapenden URLs wie hier gezeigt als Eingabe hinzu:

Eingabe-URL

Danach werden die gewünschten Daten gesammelt, wozu Sie folgenden Code verwenden können:

let data = parse();
collect({
    title: data.title,
    price: data.price,
    rating: data.rating,
    number_of_reviews: data.number_of_reviews,
});

Als letzten Schritt müssen Sie das HTML in strukturierte Daten parsen. Dazu können Sie im Fenster Parser code den folgenden Code verwenden:

return {
    title: $('h1').text().trim(),
    price: $('span.inline-flex:nth-child(2) > span:nth-child(1)').text(),
    rating: $('span.f7').text(),
    number_of_reviews: $('a.f7').text(),
};

Anschließend können Sie die gewünschten Daten direkt in der Web Scraper IDE abrufen. Klicken Sie einfach auf die Wiedergabe-Schaltfläche auf der rechten Seite (oder drücken Sie Strg+Eingabe), um die gewünschten Ergebnisse auszulesen. Alternativ können Sie die Daten auch direkt aus der Web Scraper IDE herunterladen:

Falls Sie als Worker-Typ Browser statt Code gewählt haben, sähe die Ausgabe wie folgt aus:

Ausgabe der Web Scraper IDE mit Worker-Typ Browser

Das direkte Abrufen von Ergebnissen in der Web Scraper IDE ist nur eine der Möglichkeiten, die Ihnen zur Abfrage der Daten zur Verfügung stehen. Sie können Ihre Präferenzen für die Ausgabe im Dashboard My scrapers festlegen.

Sollte sich das Web Scraping selbst mit der Web Scraper IDE als zu kompliziert erweisen, bietet Bright Data Ihnen im Dataset Marketplace („Datensatz-Marktplatz“) einen Walmart-Produktdatensatz an, in dem zahlreiche Datensätze mit einem Klick abgerufen werden können:

Abbildung des Datensatz-Marktplatzes

Wie Sie gesehen haben, ist die Verwendung der Web Scraper IDE von Bright Data einfacher und anwenderfreundlicher als das Erstellen eines eigenen Web Scrapers mithilfe von Python und Selenium. Und das Beste dabei: Die Web Scraper IDE von Bright Data erlaubt es auch Anfängern, mit dem Sammeln von Daten der Walmart-Website zu beginnen. Dagegen sind zum Scrapen von Walmart.com mit Python und Selenium fundierte Programmierkenntnisse notwendig.

Ein weiterer überzeugender Pluspunkt des Walmart Scrapers von Bright Data ist neben der Benutzerfreundlichkeit seine Skalierbarkeit. Sie können mühelos Daten zu beliebig vielen Produkten abrufen.

Ein wichtiger Aspekt im Zusammenhang mit Web Scraping sind die geltenden Datenschutzbestimmungen. Viele Unternehmen unterbinden oder beschränken das Scrapen von Informationen von ihrer Website. Wenn Sie also Ihren eigenen Web Scraper mithilfe von Python und Selenium erstellen, müssen Sie sicherstellen, dass Sie nicht gegen irgendwelche Gesetze und Vorschriften verstoßen. Bei Verwendung der Web Scraper IDE von Bright Data übernimmt jedoch Bright Data diese Verantwortung und sorgt dafür, dass die branchenüblichen Vorgehensweisen und sämtliche Datenschutzbestimmungen eingehalten werden.

Fazit

In diesem Artikel haben Sie erfahren, was für das Scrapen von Walmart-Daten spricht, und gelernt, wie Sie die Preise, Namen, die Anzahl der Rezensionen und Bewertungen von Tausenden von Walmart-Produkten auslesen können.

Wie Sie gesehen haben, können Sie diese Daten mithilfe von Python und Selenium scrapen, was sich jedoch als schwierig erweisen kann und mit einigen insbesondere für Anfänger nicht unerheblichen Herausforderungen verbunden ist. Allerdings gibt es Lösungen, die das Scrapen von Walmart-Daten wesentlich vereinfachen, wie z. B. die Web Scraper IDE. Sie bietet Funktionen und Codevorlagen zum Scrapen vieler beliebter Websites, hilft beim Umgehen von CAPTCHAs und erfüllt sämtliche Datenschutzbestimmungen.