Tony Wang6 Min. LesezeitSam's Club scrapen 2026 (API & Python)
Sam's Club-Produktdaten 2026 scrapen — Preise, Verfügbarkeit, Bilder, Ratings als JSON. Nur Product-Detail, kein Search-Endpoint.
Am schnellsten scrapst du Sam's Club 2026, indem du eine strukturierte API aufrufst, die normalisiertes JSON für das volle Detail eines Produkts liefert — statt Sam's Clubs Seiten selbst zu parsen. Diese API ist bewusst schmal gehalten: nur Product-Detail. Es gibt keinen Search-Endpoint, weil Sam's Clubs eigene robots.txt das Crawlen der Suchergebnisse verbietet — ein reales, zitierbares technisches Signal, keine rechtliche Aussage. Der Workflow startet also mit einer product id aus einer URL, nicht mit einer Keyword-Query. Dieser Guide zeigt dir DIY, No-Code und die strukturierte API, was jeder Ansatz liefert, wo DIY scheitert, und die rechtlichen und Zugriffs-Grundlagen.
Warum Sam's Club scrapen?
Sam's Clubs Product-Daten treiben an:
- Pricing Intelligence — nachverfolgen, wie sich der Preis eines Bulk- oder Club-only-Items über die Zeit bewegt.
- Assortment-Recherche — beobachten, welche Items eine Category führt, indem du Detail für ein bekanntes Set von product ids ziehst.
- Review- und Rating-Tracking — Aggregate-Rating- und Review-Count-Trends für eine Produktlinie beobachten.
- Availability-Monitoring — prüfen, ob ein getracktes Item noch verfügbar ist, bevor es ausgelistet oder ausgetauscht wird.
- Catalog-Enrichment — die eigene Item-Nummer des Clubs, Images und Category-Breadcrumb an einen bestehenden Product-Record aus einer anderen Quelle anhängen.
Ist es legal, Sam's Club zu scrapen?
Option 1: DIY in Python (und warum das scheitert)
Ein DIY-Scraper muss eine gerenderte Product-Page fetchen und parsen, da es keinen öffentlichen JSON-Endpoint gibt, den du direkt aufrufen kannst:
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.samsclub.com/ip/some-product-name/1234567",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Price, rating, and item number are embedded in page data, not
# consistently exposed as selectable markup
Es funktioniert in der Demo und geht dann kaputt:
- Auch die Search-Page lässt sich absichtlich nicht scrapen. Sam's Clubs robots.txt verbietet das Crawlen der Suchergebnisse, deshalb kämpft selbst ein DIY-Search-Scraper von Anfang an gegen die erklärte Crawl-Policy der Seite selbst, nicht nur gegen eine technische Mauer.
- Du brauchst eine product id, bevor du überhaupt etwas anfragen kannst. Die id taucht nur in der eigenen
/ip/{slug}/{id}-URL eines Produkts auf — es gibt kein Keyword-zu-id-Lookup, also musst du ids aus einer Sitemap, einer Category-Page oder einem bestehenden Katalog beschaffen. - Anti-Bot-Defenses sitzen vor der Seite. Ein routinemäßiger, unauthentifizierter Request wird schnell herausgefordert oder blockiert, und ein Browser-basierter Scraper braucht laufende Pflege, während sich die Defense weiterentwickelt.
- Keine offizielle Third-Party-API. Sam's Club hat kein Self-Service-Developer-Programm für externen Product-Data-Zugriff.
Option 2: No-Code-Tools
Marketplace-Scraper-Actors, die Sam's Club abdecken, existieren und eignen sich für einen einmaligen Pull einer kurzen, bekannten Produktliste, aber sie erben dieselbe Anti-Bot-Fragilität wie DIY, kommen ebenfalls nicht um die fehlende Search-Page herum und geben dir kein stabiles, versioniertes Schema, auf dem du eine Pipeline aufbauen kannst.
Option 3: Eine strukturierte Sam's Club API
Für einen wiederholbaren Workflow liefert Crawloras Sam's Club API normalisiertes JSON für Product-Detail — kein Page-Parsing oder Bot-Defense-Pflegeaufwand. Anders als bei den meisten Plattformen dieser Serie gibt es keinen /samsclub/search-Endpoint: Du beschaffst eine product id aus einer Product-Page-URL (aus einer Sitemap, einer Category-Listing oder deinem eigenen Katalog) und löst dann direkt das volle Detail auf:
curl "https://api.crawlora.net/api/v1/samsclub/product/1234567" \
-H "x-api-key: $CRAWLORA_API_KEY"
In Python ziehst du die numerische id aus einer bekannten Product-URL und rufst denselben Endpoint auf:
import re
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/samsclub"
product_url = "https://www.samsclub.com/ip/some-product-name/1234567"
product_id = re.search(r"/(\d+)$", product_url).group(1)
detail = requests.get(f"{base}/product/{product_id}", headers=h).json()["data"]
Eine Product-Detail-Response ist normalisiertes JSON (prüfe die docs für die vollständige Feldliste):
{
"code": 200,
"msg": "OK",
"data": {
"id": "1234567",
"item_number": "980156423",
"title": "Member's Mark 24-Pack Purified Water, 16.9 fl oz",
"brand": "Member's Mark",
"description": "Purified drinking water in individual bottles, packaged for home and event use.",
"category": ["Grocery", "Beverages", "Water"],
"price": 4.98,
"availability": "IN_STOCK",
"images": [
"https://scene7.samsclub.com/is/image/samsclub/0078742213456_A"
],
"rating": 4.7,
"rating_count": 2143
}
}
Speichere eine Zeile pro Produkt pro Pull, gekeyt über id oder die eigene item_number des Clubs, und lauf das nach Zeitplan erneut, um price-Änderungen und availability-Flips zu tracken.
Was du sammeln kannst
Öffentliche Product-Detail-Daten, gekeyt über eine product id, die du bereits hast: brand, description, category breadcrumb, pricing, availability, images, aggregate rating mit review count, und die eigene item number des Clubs. Es gibt keinen Search-, Browse- oder Category-Listing-Endpoint, um neue ids über ein Keyword zu entdecken — du musst die id selbst mitbringen. Nur öffentliche Product-Page-Daten — keine Member-Account-, Order- oder Payment-Informationen, und kein individueller Review-Text (der Endpoint liefert das aggregate rating und den count, nicht Review-level-Detail).
Grenzen und typische Herausforderungen
- Kein Search-Endpoint, by design. Sam's Clubs robots.txt verbietet das Crawlen der Suchergebnisse, deshalb gibt es über diese API keinen Weg von einem Keyword zu einem Set von product ids — du brauchst eine externe Quelle für ids (Sitemap, Category-Page oder deinen eigenen Katalog).
- Anti-Bot-Defenses auf der Frontend-Seite. Erwarte Challenges bei naiven oder High-Volume-Automated-Requests direkt an samsclub.com.
- Kein Membership-Flag im Schema. Product-Detail zeigt kein Membership-Required-Feld, wie es manche Warehouse-Club-Daten anderswo tun — behandle den gescrapten
priceals gelisteten Preis, nicht als bestätigten Member- oder Non-Member-Preis. - Kein Nationwide-Bulk-Export. Es gibt keinen offiziellen Feed für Sam's Clubs vollen Katalog; die Coverage ist nur so gut wie die Liste der product ids, die du pflegst.
- Nur öffentliche Daten. Das ist, was eine Product-Page ohnehin öffentlich zeigt — kein Weg um ein Membership-Login herum oder in Account-Level-Daten hinein.
Wo das eingesetzt wird
- Pricing Intelligence —
priceundavailabilityauf einer festen Watchlist von Bulk- und Club-Brand-Items über die Zeit tracken. - Catalog-Enrichment —
item_number,imagesundcategoryan Product-Records anhängen, die aus anderen Quellen stammen. - Rating-Monitoring —
rating/rating_count-Trends für eine Produktlinie über mehrere Releases hinweg beobachten.
Sources
Leg los mit dem Sammeln
Probier es zuerst kostenlos aus: jage eine beliebige öffentliche URL durch den Free Web Scraper, oder prüfe mit dem Anti-Bot Checker, ob eine Seite Bots blockiert — ohne Anmeldung.
Teste den Product-Detail-Endpoint im Playground, sieh dir das Schema in den API docs an und wirf einen Blick aufs pricing. Für dasselbe Warehouse-Club-Membership-Pattern mit einem vollständigeren Search-zu-Detail-Flow, siehe how to scrape Costco; für die nächstliegende General-Merchandise-Muttergesellschaft, siehe how to scrape Walmart; und für einen weiteren Big-Box-Konkurrenten, siehe how to scrape Target. Siehe auch how to choose a web scraping API und is web scraping legal.
Häufig gestellte Fragen
Kann ich mit dieser API Sam's Club-Produkte durchsuchen?
Nein — diese Plattform ist nur auf Product-Detail beschränkt. Sam's Clubs eigene robots.txt verbietet das Crawlen der Suchergebnisse, deshalb wird kein /samsclub/search-Endpoint angeboten.
Wie identifiziere ich ein Sam's Club-Produkt für die API?
Nimm die numerische id aus der eigenen /ip/{slug}/{id}-URL des Produkts und übergib sie an /samsclub/product/{id}.
Kann ich mit einer API Kundenrezensionen für ein Sam's Club-Produkt bekommen?
/samsclub/product/{id} liefert das aggregate rating und die Review-Anzahl — einzelner Review-Text ist über diesen Endpoint nicht verfügbar.