Walmart betreibt einen der größten Einzelhandelskataloge im Web, und fast alles davon ist öffentlich: Suchergebnisse, Produktdetailseiten, Kundenbewertungen, Bestseller-Rankings und die gesponserten Platzierungen in Such- und Kategorieergebnissen. Diese Daten fließen in Preisverfolgung, Wettbewerbsforschung, Sortimentsanalyse und Nachfrageprognosen ein, weshalb Entwickler immer wieder auf sie zugreifen möchten. Das Problem besteht darin, sie sauber zu extrahieren, da Walmart die meisten Seitenelemente im Browser rendert und automatisierten Traffic rigoros abwehrt.
Dieser Leitfaden ist die Roadmap für den gesamten Walmart-Cluster. Er kartiert die Datenoberflächen, die man scrapen kann, erklärt, warum eine einfache HTTP-Anfrage nahezu leer zurückkommt, und führt ein lauffähiges End-to-End-Beispiel in JavaScript und Node.js durch: eine Walmart-Suchergebnisseite wird mit Cheerio in strukturiertes JSON geparst und über die Crawling API abgerufen. Der Fokus liegt auf öffentlichen Produktdaten, verweist auf die tiefergehenden Guides für Preise, Bewertungen, Bestseller und Anzeigen, und endet mit einer ehrlichen Einschätzung der rechtlichen Seite. Lesen Sie diesen Abschnitt, bevor Sie das Skript in großem Umfang einsetzen.
Die Walmart-Datenoberflächen, die man scrapen kann
Vor dem Code lohnt es sich zu verstehen, was tatsächlich verfügbar ist. Walmart stellt mehrere verschiedene öffentliche Oberflächen bereit, und jede ist ein eigener Scraping-Job mit eigenem Layout und eigenen Selektoren. Diese Liste dient als Übersicht für den Cluster:
- Search results (SERP) die Listenansicht, die man bei einer Suche wie "iphone 14 pro" erhält. Jede Karte enthält Titel, Preis, Bewertung, Rezensionsanzahl, Liefernachricht und ein Sponsored-Flag. Das ist das Laufbeispiel unten, und die ausführlichere Anleitung findet sich unter Walmart-Suche mit Python scrapen.
- Product pages die vollständige Detailseite für ein einzelnes Produkt: ausführliche Beschreibung, Spezifikationen, alle Bilder, Verkäufer und der aktuelle Preis. Die dedizierte Anleitung findet sich unter eine Walmart-Produktseite mit Selenium scrapen.
- Prices das einzelne Feld, das die meisten Teams turnusmäßig benötigen, für Wettbewerbsmonitoring und Repricing. Siehe Walmart-Preise einfach scrapen.
- Reviews die öffentliche Bewertungsverteilung und der individuelle Bewertungstext auf einer Produktseite, nützlich für Stimmungs- und Qualitätssignale. Siehe den Walmart-Bewertungsscraping-Leitfaden.
- Best sellers Walmarts gerankte Kategorienlisten, ein schneller Überblick über das Aktuelle. Siehe Walmart-Bestseller scrapen.
- Sponsored ads die bezahlten Platzierungen in Such- und Kategorieergebnissen, es lohnt sich, sie für Ad-Intelligence-Arbeit zu isolieren. Siehe Walmart-Sponsored-Ads-Scraping.
Die Technik ist bei allen gleich: die Seite rendern, dann die gewünschten Felder mit CSS-Selektoren parsen. Das Beispiel hier verwendet Suchergebnisse, weil das Karten-Layout fast jeden Feldtyp zeigt, den Walmart hat, sodass man, sobald man eine SERP-Karte lesen kann, auch den Rest lesen kann.
Was Sie erstellen werden
Ein Node.js-Skript, das eine öffentliche Walmart-Such-URL entgegennimmt, das gerenderte HTML über die Crawling API abruft und pro Produkt auf der Ergebnisseite einen strukturierten Datensatz extrahiert. Wir verwenden die Suchanfrage "iphone 14 pro" als Laufbeispiel und extrahieren folgende Felder pro Artikel:
- Title der Produktname, zum Beispiel "Straight Talk Apple iPhone 14 Pro Max, 128GB, Silver".
- Price der angezeigte Preis, wie "1,099".
- Currency das Währungssymbol, zum Beispiel "$".
- Review star der Bewertungs-String, wie "4.4 out of 5 Stars. 31 reviews".
- Reviews count die Anzahl der Bewertungen auf der Karte.
- Delivery message die Fulfillment-Zeile, wie "Free shipping, arrives in 3+ days".
- Product badge ein Karten-Badge wie "Popular pick", wenn vorhanden.
- Inventory status "In Stock" oder "Out of stock".
- Is sponsored ein boolesches Flag für bezahlte Platzierungen.
- Image die URL des Produkt-Thumbnails.
Warum eine einfache Anfrage bei Walmart scheitert
Wenn Sie eine Walmart-Such-URL mit einem einfachen HTTP-Client abrufen, erhalten Sie eine Antwort, die fast alles vermissen lässt, was Sie suchen. Zwei Faktoren arbeiten gegen Sie. Erstens rendert Walmart Preise, Bewertungen, Liefernachrichten und den Großteil der Kartendetails im Browser mit JavaScript, sodass das initiale HTML eine dünne Hülle ist, bis die Seitenskripte ausgeführt werden. Zweitens erkennt Walmart automatisierten Traffic schnell: Datacenter-IPs und Anfragemuster, die nicht wie ein echter Browser wirken, werden mit Challenges konfrontiert, gedrosselt oder geblockt, bevor sie den gerenderten Inhalt je erreichen.
Ein funktionierender Walmart-Scraper benötigt daher zwei Dinge in einer einzigen Anfrage: einen Browser, der die Seite tatsächlich rendert, und eine IP, die die Plattform als echten Besucher erkennt. Das kann man selbst mit einem Headless-Browser und einem Pool rotierender Residential-Proxys zusammenstellen, doch diese Komponenten zu verbinden und betriebsbereit zu halten ist der Großteil der Arbeit. Die Crawling API fasst beides in einem Aufruf zusammen: Sie senden die URL, sie rendert die Seite hinter einer vertrauenswürdigen IP und gibt fertiges HTML zurück. Für die Proxy-Seite dieses Kompromisses speziell geht der Walmart-Scraping-Proxies-Benchmark tiefer.
Crawlbase bietet zwei Token-Typen an. Das normale Token ruft statisches HTML ab; das JavaScript-Token rendert die Seite zuerst in einem echten Browser. Walmart lädt wichtige Kartenfelder clientseitig, sodass das JavaScript-Token die vollständigste Seite liefert. Das normale Token kann ein partielles Ergebnis mit fehlenden Preisen oder Bewertungen zurückgeben, was kaum zuverlässig zu parsen ist. JavaScript-Anfragen kosten mehr Credits, daher sollten Sie sie dort einsetzen, wo die Seite tatsächlich Rendering benötigt.
Voraussetzungen
Bevor Sie mit dem Schreiben von Code beginnen, sind einige Dinge erforderlich. Keines davon nimmt viel Zeit in Anspruch.
JavaScript- und Node.js-Grundkenntnisse. Sie sollten in der Lage sein, ein Node-Skript zu schreiben, auszuführen und Pakete mit npm zu installieren. Falls Sie neu bei Node sind, bringen die offiziellen Docs und jeder Einsteigerkurs Sie auf das Niveau, das dieses Tutorial voraussetzt. Eine ausführlichere Einführung finden Sie in unserem Guide zu Web-Scraper mit Node.js erstellen.
Node.js 16 oder neuer. Prüfen Sie Ihre Version mit node --version. Falls Sie sie nicht haben, installieren Sie sie von der Node.js-Website oder über einen Versionsmanager wie nvm.
Ein Crawlbase-Konto und Token. Registrieren Sie sich, öffnen Sie Ihr Dashboard und kopieren Sie Ihr Token von der Account-Dokumentationsseite. Sie erhalten beim Anmelden bis zu 20.000 kostenlose Anfragen ohne Kreditkarte, was für dieses Projekt mehr als ausreicht. Behandeln Sie das Token wie ein Passwort: Es authentifiziert Ihre Anfragen, halten Sie es daher aus der Versionskontrolle fern.
Das Projekt einrichten
Erstellen Sie einen Projektordner, initialisieren Sie ihn und installieren Sie die zwei Bibliotheken, die der Scraper benötigt.
node --version mkdir walmart-scraper && cd walmart-scraper npm init -y npm install crawlbase cheerio
Zwei Abhängigkeiten erledigen die Arbeit: crawlbase ist der offizielle Node-Client für die Crawling API, und cheerio parst das zurückgegebene HTML mit einer jQuery-ähnlichen API, sodass Sie einzelne Felder per CSS-Selektor extrahieren können. Falls Selektoren neu für Sie sind, ist der Primer zu XPath und CSS-Selektoren eine gute Ergänzung. Die Legacy-Version dieses Projekts verwendete auch Express, um einen /scrape-Endpunkt bereitzustellen, was ein gutes Muster ist, wenn Sie den Scraper über HTTP aufrufen möchten, aber optional ist; wir halten das Kern-Skript hier eigenständig.
Schritt 1: Die gerenderte Suchergebnisseite abrufen
Beginnen Sie damit, die fertige Seite zu laden. Importieren Sie die CrawlingAPI-Klasse, initialisieren Sie sie mit Ihrem Token und rufen Sie die Such-URL ab. Die Überprüfung des Statuscodes vor dem Parsen sorgt dafür, dass Fehler laut statt lautlos scheitern.
const { CrawlingAPI } = require('crawlbase'); const api = new CrawlingAPI({ token: 'YOUR_CRAWLBASE_TOKEN' }); async function crawl(pageUrl) { const response = await api.get(pageUrl); if (response.statusCode === 200) { return response.body; } console.error(`Request failed: ${response.statusCode}`); return null; } const searchUrl = 'https://www.walmart.com/search?q=iphone+14+pro'; crawl(searchUrl).then((html) => { console.log(html ? html.slice(0, 500) : 'No HTML returned'); });
Führen Sie das Skript mit node scraper.js aus, und Sie sollten echtes Walmart-Markup sehen, keine abgespeckte Hülle. Das bestätigt, dass Rendering und IP-Rotation funktionieren, bevor Sie einen einzigen Selektor schreiben. Wenn der Body dünn zurückkommt, benötigte die Seite eine JavaScript-Anfrage: wechseln Sie zu Ihrem JavaScript-Token, das die Seite in einem echten Browser rendert, bevor es das HTML zurückgibt.
Dieser erste Aufruf hat gerade eine Walmart-Suchergebnisseite hinter einer vertrauenswürdigen IP gerendert, ohne dass Sie einen Browser oder einen Proxy anfassen mussten. Die Crawling API führt die Seite in einem echten Browser aus, rotiert serverseitig durch Residential-IPs und gibt fertiges HTML zurück, sodass Sie weder eine Headless-Browser-Flotte noch einen Proxy-Pool betreiben müssen. Probieren Sie es zunächst mit einer öffentlichen Suchergebnisseite im kostenlosen Tarif aus.
Schritt 2: Jedes Produkt mit Cheerio parsen
Mit dem gerenderten HTML laden Sie es in Cheerio und durchlaufen die Ergebniskarten. Walmart legt jedes Suchergebnis in einem wiederholenden Listen-View-Block an, daher selektieren Sie jede Karte und lesen dann die Felder aus ihr heraus. Die folgenden Selektoren stammen direkt von einer Live-Walmart-SERP. Das defensive Lesen jedes Feldes verhindert, dass ein fehlender Wert den gesamten Lauf zum Absturz bringt.
const cheerio = require('cheerio'); function parseProductsFromHTML(html) { const $ = cheerio.load(html); const products = []; $('div[role="group"] div[data-testid="list-view"]').each((_, element) => { const el = $(element); const title = el.find('[data-automation-id="product-title"]').text(); if (!title) return; products.push({ title, image: el.find('[data-testid="productTileImage"]').attr('src'), price: el.find('[data-automation-id="product-price"] .lh-copy span.f2').text(), currency: el.find('[data-automation-id="product-price"] .f6.f5-l:first').text(), reviewsCount: el.find('[aria-hidden=true].f7').text(), reviewStar: el.find('.flex.items-center.mt2 .w_iUH7').text(), deliveryMessage: el.find('[data-automation-id="fulfillment-badge"]').text().trim(), productBadge: el.find('.tag-leading-badge').text(), inventoryStatus: el.find('[data-automation-id="inventory-status"]').text() || 'In Stock', isSponsored: el.find('.lh-title > .gray.f7').text() ? true : false, }); }); return { products, productsCount: products.length }; }
Dies durchläuft jede Listen-View-Karte auf der Seite und liest jedes Feld per Selektor: title, image, price, currency, reviewsCount, reviewStar, deliveryMessage, productBadge, inventoryStatus und das isSponsored-Flag. Der Inventarstatus fällt auf "In Stock" zurück, wenn kein Nicht-Verfügbarkeits-Marker vorhanden ist, und isSponsored wird durch Prüfung auf das kleine Sponsored-Label innerhalb der Karte zu einem Boolean. Dieselbe Schleife ist es, die Sie anpassen würden, um bezahlte Platzierungen für Ad-Intelligence-Arbeit zu isolieren, da das Sponsored-Flag bereits im Datensatz enthalten ist.
Walmarts Klassennamen und data-testid-Marker ändern sich ohne Vorankündigung, und sie unterscheiden sich zwischen Such-, Produkt- und Kategorienseiten. Betrachten Sie die obigen Selektoren als Ausgangspunkt, nicht als Vertrag. Wenn ein Feld als leerer String zurückkommt, prüfen Sie die Live-Seite in den Entwicklertools Ihres Browsers und aktualisieren Sie den Selektor. Regelmäßige Selektor-Wartung ist bei jedem Produktionsscraper normal, kein Zeichen dafür, dass etwas kaputt ist.
Schritt 3: Alles zusammenfügen
Verbinden Sie nun Abruf und Parsing in einem lauffähigen Skript. Rufen Sie das gerenderte HTML ab, übergeben Sie es an den Parser und geben Sie die strukturierten Datensätze als JSON aus.
const { CrawlingAPI } = require('crawlbase'); const cheerio = require('cheerio'); const api = new CrawlingAPI({ token: 'YOUR_CRAWLBASE_TOKEN' }); async function crawl(pageUrl) { const response = await api.get(pageUrl); if (response.statusCode === 200) return response.body; console.error(`Request failed: ${response.statusCode}`); return null; } function parseProductsFromHTML(html) { const $ = cheerio.load(html); const products = []; $('div[role="group"] div[data-testid="list-view"]').each((_, element) => { const el = $(element); const title = el.find('[data-automation-id="product-title"]').text(); if (!title) return; products.push({ title, image: el.find('[data-testid="productTileImage"]').attr('src'), price: el.find('[data-automation-id="product-price"] .lh-copy span.f2').text(), currency: el.find('[data-automation-id="product-price"] .f6.f5-l:first').text(), reviewsCount: el.find('[aria-hidden=true].f7').text(), reviewStar: el.find('.flex.items-center.mt2 .w_iUH7').text(), deliveryMessage: el.find('[data-automation-id="fulfillment-badge"]').text().trim(), productBadge: el.find('.tag-leading-badge').text(), inventoryStatus: el.find('[data-automation-id="inventory-status"]').text() || 'In Stock', isSponsored: el.find('.lh-title > .gray.f7').text() ? true : false, }); }); return { products, productsCount: products.length }; } async function main() { const searchUrl = 'https://www.walmart.com/search?q=iphone+14+pro'; const html = await crawl(searchUrl); if (!html) return; const data = parseProductsFromHTML(html); console.log(JSON.stringify(data, null, 2)); } main();
Sobald eine URL angegeben ist, rendert das Skript die Seite über die Crawling API, parst jede Produktkarte und gibt ein sauberes Objekt mit der Produktliste und einer Anzahl zurück. Das ist die vollständige Schleife, von der URL zu strukturierten Daten, in einer Datei.
Wie die Ausgabe aussieht
Führen Sie das vollständige Skript mit node scraper.js aus, und Sie erhalten ein sauberes Objekt: ein products-Array mit einem Eintrag pro Karte und einem productsCount. Es ist bereit, als JSON, CSV oder in eine Datenbank geschrieben zu werden.
{ "products": [ { "title": "Straight Talk Apple iPhone 14 Pro Max, 128GB, Silver- Prepaid Smartphone", "image": "https://i5.walmartimages.com/seo/Straight-Talk-Apple-iPhone-14-Pro-Max.jpeg", "price": "1,099", "currency": "$", "reviewsCount": "31", "reviewStar": "4.4 out of 5 Stars. 31 reviews", "deliveryMessage": "Free shipping, arrives in 3+ days", "productBadge": "Popular pick", "inventoryStatus": "In Stock", "isSponsored": true }, { "title": "Restored Apple iPhone 14 Pro 128GB Deep Purple (Unlocked) Used Excellent", "image": "https://i5.walmartimages.com/asr/1385d15c-17b0-4392-8fc1-414cae1a51ed.jpeg", "price": "899", "currency": "$", "reviewsCount": "5", "reviewStar": "4.2 out of 5 Stars. 5 reviews", "deliveryMessage": "Free shipping, arrives in 3+ days", "productBadge": "", "inventoryStatus": "In Stock", "isSponsored": false } ], "productsCount": 2 }
Über mehrere Ergebnisseiten skalieren
Eine Ergebnisseite ist eine Demo; ein realer Job durchläuft die Paginierung. Walmart strukturiert seine Such-URLs mit einem page-Parameter, sodass Sie jede Seiten-URL in einer Schleife erstellen, sie über die Crawling API abrufen, mit derselben Funktion parsen und die Zeilen akkumulieren können. Eine typische Abfolge sieht so aus:
https://www.walmart.com/search?q=iphone+14+prohttps://www.walmart.com/search?q=iphone+14+pro&page=2https://www.walmart.com/search?q=iphone+14+pro&page=3
async function scrapePages(query, totalPages) { const all = []; for (let page = 1; page <= totalPages; page++) { const url = `https://www.walmart.com/search?q=${encodeURIComponent(query)}&page=${page}`; const html = await crawl(url); if (html) all.push(...parseProductsFromHTML(html).products); } return all; } scrapePages('iphone 14 pro', 3).then((rows) => { console.log(`Collected ${rows.length} products`); });
Von hier aus können Sie auf Tausende von Suchergebnisseiten skalieren und die Ausgabe in einer Datenbank oder in der Cloud speichern. Um jede Zeile mit vollständigen Details anzureichern (lange Beschreibung, alle Bilder, die vollständige Bewertungsaufschlüsselung), nehmen Sie den Link eines Produkts, rufen Sie diese einzelne Produktseite über dieselbe crawl-Funktion ab und schreiben Sie einen kleinen Parser für das Produktlayout. Das Muster ist identisch: rendern, dann parsen. Der Produktseiten-Leitfaden und der Bewertungs-Leitfaden setzen genau dort an.
Nicht geblockt werden
Selbst wenn das Rendering abgedeckt ist, beobachtet Walmart scraper-ähnlichen Traffic. Es besteht ein echtes Blockierungsrisiko, wenn man ohne einen großen, rotierenden IP-Pool betreibt, und einen selbst aufzubauen ist sowohl zeitaufwendig als auch kostspielig. Einige Gewohnheiten halten einen Lauf gesund, und sie gelten für jedes schwierige kommerzielle Ziel.
- Anfragen drosseln. Seiten in einer engen Schleife zu hämmern ist der schnellste Weg zur Drosselung. Verteilen Sie Anfragen und variieren Sie Ihre Suchanfragen statt einen Pfad mit voller Geschwindigkeit zu crawlen.
- Rotation nutzen. Ein Pool von Residential-IPs verteilt Anfragen auf viele echte Nutzeradressen, sodass keine einzelne ein Ratenlimit auslöst. Die Crawling API übernimmt das für Sie; wenn Sie Ihren eigenen Stack betreiben, ist das der Teil, den Sie richtig hinkriegen müssen.
- Statuscodes beachten. Ein Lauf, der beginnt, Challenges oder Fehler zurückzugeben, signalisiert Ihnen, dass die aktuelle Rate oder IP-Stufe nicht mehr ausreicht. Behandeln Sie das als Signal zum Zurückrudern, nicht als Rauschen, das Sie ignorieren.
Das allgemeine Playbook finden Sie unter Websites scrapen ohne geblockt zu werden. Wenn Sie Ihren eigenen Traffic lieber über einen rotierenden Pool leiten möchten statt die verwaltete API zu nutzen, bietet der Smart AI Proxy dieselbe Residential-IP-Rotation als Drop-in-Endpunkt. Walmart ist auch ein häufiges Ziel für breiteres E-Commerce-Web-Scraping, bei dem dasselbe Render-dann-Parse-Muster seitenübergreifend anwendbar ist, und die resultierenden Preis-Feeds fließen direkt in Price-Intelligence-Arbeit ein.
Ist es legal, Walmart zu scrapen?
Ob das Scrapen von Walmart erlaubt ist, hängt von Walmarts Nutzungsbedingungen, Ihrer Rechtsordnung und dem Verwendungszweck der Daten ab. Walmarts Bedingungen schränken den automatisierten Zugriff ein, sodass Scraping gegen diese Bedingungen verstoßen kann, unabhängig davon, wie sorgfältig Ihr Tooling ist. Keiner der hier aufgeführten Codes ändert daran etwas; er macht lediglich den technischen Teil funktionsfähig. Lesen Sie Walmarts Nutzungsbedingungen und seine robots.txt, und betrachten Sie beides als Grenze für das, was Sie erfassen.
Einige Grundsätze sollten eingehalten werden. Erfassen Sie nur öffentliche Produktdaten: Titel, Preis, Bewertung, Rezensionsanzahl, Liefernachricht, Badge, Inventarstatus und das Sponsored-Flag, das jeder ohne Konto sehen kann. Respektieren Sie Walmarts angegebene Ratenerwartungen und halten Sie Ihr Anfragevolumen niedrig genug, um dessen Server nicht zu belasten. Vermeiden Sie personenbezogene Daten, einschließlich allem, was mit identifizierbaren Rezensenten über den öffentlichen Bewertungstext selbst hinaus verbunden ist, und verbreiten Sie keine urheberrechtlich geschützten Medien wie Produktbilder, als wären sie Ihre eigenen.
Für Volumen oder kommerzielle Nutzung bevorzugen Sie einen offiziellen Kanal. Walmart betreibt eine Entwicklerplattform sowie Affiliate- und Marketplace-APIs, und das sind die richtigen Werkzeuge, wenn Sie große Mengen, garantierte Struktur oder kommerzielle Rechte benötigen. Dieser Leitfaden beschränkt sich bewusst auf öffentliche Such- und Produktseiten, da das die Grenze ist, die die Arbeit vertretbar macht. Er deckt nichts hinter einem Login, Kunden- oder Verkäuferkonten, Bestellhistorie, private Nachrichten oder Versuche ab, Authentifizierung zu umgehen. Wenn Ihr Projekt mehr als öffentliche Produktangebote benötigt, sind Walmarts offizielle APIs oder eine Datenvereinbarung der korrekte Weg, nicht ein ausgefeilterer Scraper.
Wichtigste Erkenntnisse
- Walmart hat mehrere öffentliche Oberflächen. Suchergebnisse, Produktseiten, Preise, Bewertungen, Bestseller und Sponsored Ads werden alle auf dieselbe Weise geparst: rendern, dann Felder per Selektor lesen, und jede hat einen eigenen tiefergehenden Leitfaden in diesem Cluster.
- Eine einfache Anfrage gibt eine Hülle zurück. Walmart rendert Karten clientseitig und bekämpft Bots, daher müssen Sie die Seite hinter einer vertrauenswürdigen IP rendern, bevor Sie sie parsen.
- Die Crawling API erledigt beides in einem Aufruf. Sie rendert die Seite und rotiert Residential-IPs serverseitig, sodass Sie weder eine Headless-Browser-Flotte noch einen Proxy-Pool betreiben müssen; JavaScript-Anfragen kosten mehr Credits, verwenden Sie sie daher dort, wo die Seite sie benötigt.
- Cheerio übernimmt die Extraktion. Selektieren Sie jede Listen-View-Karte, ordnen Sie dann Titel, Preis, Währung, Bewertung, Lieferung, Badge, Inventar und das Sponsored-Flag aktuellen Selektoren zu, und rechnen Sie damit, dass diese Selektoren sich ändern werden.
- Bleiben Sie bei öffentlichen Daten. Respektieren Sie Walmarts ToS und robots.txt, drosseln Sie Ihre Anfragen, bevorzugen Sie offizielle APIs für Volumen oder kommerzielle Nutzung, und berühren Sie niemals Logins, Kontodaten oder personenbezogene Informationen.
Häufig gestellte Fragen
Warum gibt eine einfache Anfrage unvollständige Daten von Walmart zurück?
Weil Walmart Preise, Bewertungen, Liefernachrichten und den Großteil der Kartendetails clientseitig mit JavaScript rendert. Das initiale HTML ist eine dünne Hülle, bis die Seitenskripte in einem Browser ausgeführt werden, sodass eine rohe HTTP-Anfrage wichtige Felder als fehlend oder leer zurückgibt. Um eine vollständige Seite zu erhalten, müssen Sie sie zuerst rendern, was die Crawling API übernimmt, und das JavaScript-Token erzwingt ein vollständiges Browser-Rendering, wenn eine Seite es benötigt.
Benötige ich das normale Token oder das JavaScript-Token für Walmart?
Beginnen Sie mit dem normalen Token und prüfen Sie den Body. Wenn Preise, Bewertungen oder andere Kartenfelder leer zurückkommen, wechseln Sie zum JavaScript-Token, das die Seite in einem echten Browser rendert, bevor es das HTML zurückgibt. JavaScript-Anfragen kosten mehr Credits, verwenden Sie daher das normale Token, wo es ausreicht, und reservieren Sie das JavaScript-Token für Seiten, die tatsächlich Rendering benötigen.
Wie scrappe ich die nächsten Seiten von Walmart-Suchergebnissen?
Walmart strukturiert seine Such-URLs mit einem page-Parameter, sodass das Anhängen von &page=2, &page=3 usw. durch die Ergebnisseiten navigiert. Erstellen Sie jede Seiten-URL in einer Schleife, rufen Sie sie über die Crawling API ab und führen Sie denselben Parser auf jeder Seite aus. Da jede Ergebnisseite dieselbe Kartenstruktur teilt, funktioniert der bereits geschriebene Parser seitenübergreifend ohne Änderungen.
Meine Selektoren geben leere Strings zurück. Was hat sich geändert?
Fast sicher Walmarts Markup. Die Klassennamen und data-testid-Marker ändern sich ohne Vorankündigung, und sie unterscheiden sich zwischen Such-, Produkt- und Kategorienseiten, sodass Selektoren, die letzten Monat funktioniert haben, jetzt kaputt sein können. Prüfen Sie eine Live-Seite in den Entwicklertools Ihres Browsers und aktualisieren Sie die Selektoren. Regelmäßige Selektor-Wartung ist bei jedem Produktionsscraper normal.
Kann ich personenbezogene Daten von Kunden oder Verkäufern bei Walmart scrapen?
Nein, und dieser Leitfaden deckt das nicht ab. Kontodaten, Bestellhistorie und private Nachrichten sitzen hinter einem Login, sind also keine öffentlichen Daten. Öffentlicher Bewertungstext ist auf einer Produktseite sichtbar, aber Sie sollten ihn dennoch nicht mit identifizierbaren Personen verknüpfen. Das Scrapen von login-gesperrtem Inhalt, personenbezogenen Daten oder das Umgehen von Authentifizierung, um ihn zu erreichen, fällt nicht in den Rahmen dieser Anleitung und verstößt gegen Walmarts Bedingungen.
Wohin gehe ich als nächstes für Preise, Bewertungen, Bestseller oder Anzeigen?
Diese Roadmap deckt Suchergebnisse von Anfang bis Ende ab; der Cluster hat für jede andere Oberfläche einen dedizierten Leitfaden. Siehe Walmart-Preise scrapen, den Bewertungs-Scraping-Leitfaden, Bestseller und Sponsored Ads. Jeder verwendet denselben Render-dann-Parse-Ansatz auf einer anderen Walmart-Seite.
Crawlen Sie jede Website im großen Maßstab, ohne gegen die Infrastruktur zu kämpfen.
Crawlbase übernimmt Proxys, Fingerprints und CAPTCHAs, damit Ihr Team Datenpipelines ausliefert, statt Crawl-Infrastruktur zu pflegen. 1.000 Anfragen kostenlos, keine Karte erforderlich.

