Amazons Suchergebnisse sind einer der dichtesten öffentlichen Datensätze im Einzelhandel. Jede Suchanfrage gibt ein geordnetes Raster von Einträgen zurück, mit Titeln, Preisen, Sternebewertungen, Bewertungsanzahlen, ASINs und Links zu jeder Produktseite. Diese Daten fließen in Wettbewerber-Preisverfolgung, Katalogrecherche, Nachfragesignale und Sortimentsanalyse ein. Das Problem ist, dass Amazon diese Einträge mit JavaScript rendert und automatisierten Datenverkehr stark abwehrt, sodass eine einfache HTTP-Anfrage statt der gesuchten Produkte eine nahezu leere Hülle liefert.

Diese Anleitung zeigt Ihnen, wie Sie Amazon-Suchseiten scrapen mit Python auf zuverlässige Weise. Sie bauen einen kleinen, ausführbaren Scraper, der eine gerenderte Suchergebnisseite über die Crawling API abruft, jeden Ergebniseintrag in einen sauberen Datensatz parst, über Ergebnisseiten paginiert und die Daten nach JSON und CSV exportiert. Der gesamte Walkthrough beschränkt sich auf öffentliche Such- und Eintragsdata, und der Abschnitt zur Rechtslage gegen Ende ist kein Boilerplate-Text, also lesen Sie ihn, bevor Sie dies auf ein reales Volumen anwenden.

Was Sie bauen werden

Ein Python-Skript, das eine Amazon-Suchanfrage entgegennimmt, die gerenderte Ergebnisseite über die Crawling API abruft und einen strukturierten Datensatz pro Produkt extrahiert. Wir verwenden den Suchbegriff "games" als durchgehendes Beispiel und extrahieren folgende Felder aus jedem Ergebniseintrag:

  • Titel der Produktname, wie er auf der Suchkarte erscheint.
  • Preis der auf der Karte angezeigte Listenpreis.
  • Bewertung die durchschnittliche Kundenbewertung, zum Beispiel "4.5 out of 5 stars".
  • ASIN Amazons zehnstelliger Produktidentifikator für jeden Eintrag.
  • Link die URL zur eigenen Detailseite des Produkts.

Dieser Beitrag ist auf die Suchergebnisseite (SERP) beschränkt. Wenn Sie tiefer in einen einzelnen Artikel eintauchen möchten, sobald Sie seinen Link oder seine ASIN haben, setzen die begleitenden Guides zum Scrapen von Amazon-Produktdaten und zum Scrapen nach ASIN dort an, wo dieser aufhört.

Warum eine einfache Anfrage bei Amazon scheitert

Wenn Sie eine Amazon-Such-URL mit einem einfachen HTTP-Client anfragen, erhalten Sie eine Antwort mit Status 200 und fast keine der Produktdaten im Body. Zwei Dinge arbeiten gegen Sie. Erstens lädt Amazon einen Großteil seines Suchrasters clientseitig: Das anfängliche HTML ist eine Hülle, und die Ergebnisse, Filter und Preise füllen sich erst nach der Ausführung der JavaScript- und Ajax-Aufrufe der Seite in einem Browser. Zweitens markiert Amazon automatisierten Datenverkehr schnell. Datacenter-IPs und Anfragemuster, die nicht wie ein echter Browser aussehen, werden mit einem CAPTCHA herausgefordert, ratenbegrenzt oder blockiert, bevor sie jemals die gerenderten Einträge erreichen.

Ein funktionierender Amazon-Scraper braucht also zwei Dinge in einer Anfrage: einen Browser, der die Seite tatsächlich rendert, und eine IP, die die Plattform als echten Käufer erkennt. Sie können das selbst mit einem Headless-Browser und einem Pool rotierender Residential-Proxys zusammenbauen, aber das Zusammenfügen und die Wartung dieser Komponenten ist der größte Teil der Arbeit. Die Crawling API bündelt beides in einem einzigen Aufruf: Sie senden die URL mit einem JavaScript-Token, die Seite wird hinter einer vertrauenswürdigen Residential-IP gerendert, und es werden fertige Daten zum Parsen zurückgegeben.

Warum das JS-Token

Crawlbase bietet zwei Token-Typen. Das normale Token (TCP) ruft statisches HTML ab; das JavaScript-Token (JS) rendert die Seite zuerst in einem echten Browser. Amazons Suchraster wird von JavaScript angetrieben, daher benötigen Sie hier das JS-Token. Das normale Token gibt dieselbe leere Hülle zurück wie ein einfacher Abruf, und es gibt nichts Nützliches darin zu parsen.

Voraussetzungen

Sie benötigen einige Dinge, bevor Sie mit dem Programmieren beginnen. Keines davon dauert lange.

Grundlegende Python-Kenntnisse. Sie sollten in der Lage sein, ein Python-Skript zu schreiben und auszuführen sowie Pakete mit pip zu installieren. Wenn Sie neu in der Sprache sind, behandelt der Guide zum Web-Scraping mit Python die Grundlagen, die dieses Tutorial voraussetzt.

Python 3.8 oder neuer. Bestätigen Sie Ihre Version mit python --version. Falls nicht installiert, installieren Sie es von python.org oder über eine Distribution wie Anaconda.

Ein Crawlbase-Konto und JS-Token. Registrieren Sie sich für ein kostenloses Konto, öffnen Sie Ihr Dashboard und kopieren Sie Ihr JavaScript-Token (JS). Der Free-Tier umfasst bis zu 20.000 Anfragen ohne Kreditkarte, und Sie zahlen danach nur für erfolgreiche Anfragen. Behandeln Sie das Token wie ein Passwort: Es authentifiziert Ihre Anfragen, also halten Sie es aus der Versionskontrolle heraus.

Projekt einrichten

Erstellen Sie eine virtuelle Umgebung, damit Projektabhängigkeiten isoliert bleiben, und installieren Sie dann die beiden Bibliotheken, die der Scraper benötigt.

bash
python --version

python -m venv amazon_env
source amazon_env/bin/activate

pip install crawlbase pandas

Unter Windows aktivieren Sie die Umgebung mit amazon_env\Scripts\activate statt der source-Zeile. Zwei Abhängigkeiten erledigen die Arbeit: crawlbase ist der offizielle, abhängigkeitsfreie Client für die Crawling API, und pandas organisiert die gescrapten Datensätze und schreibt sie als CSV aus. Da wir den integrierten amazon-serp-Scraper der Crawling API verwenden, kommen die geparsten Felder als strukturiertes JSON zurück, sodass Sie für diesen Beitrag keinen separaten HTML-Parser wie BeautifulSoup benötigen.

Die Amazon-Suchseite verstehen

Amazon stellt die Suche über ein einfaches URL-Muster bereit. Die Anfrage steht im Parameter k:

bash
https://www.amazon.com/s?k=games

Jede Suchseite zeigt ein Raster von Produktkarten, eine pro Eintrag. Eine Karte enthält einen Titel, einen Preis, eine Sternebewertung mit Bewertungsanzahl, ein Bild, einen Link zur Detailseite und die ASIN des Produkts. Amazon platziert auch gesponserte Einträge oben und in der Mitte der Ergebnisse, die der Parser separat kennzeichnet, sodass Sie sie beibehalten oder verwerfen können. Unterhalb des Rasters befinden sich Paginierungssteuerelemente, die Sie durch weitere Ergebnisseiten für dieselbe Anfrage führen. Die Daten sind vorhanden, aber sie laden dynamisch, was genau der Grund ist, warum der Rendering-Schritt im nächsten Abschnitt wichtig ist.

Schritt 1: Die gerenderte Suchseite abrufen

Beginnen Sie damit, die fertige Seite zu erhalten. Importieren Sie die CrawlingAPI-Klasse, initialisieren Sie sie mit Ihrem JS-Token, bauen Sie die Such-URL aus einer Anfrage und fordern Sie sie mit den Warteoptionen an, die dem dynamischen Inhalt Zeit zum Laden geben. Das Überprüfen des Statuscodes vor dem Parsen hält Fehler sichtbar statt still.

python
from crawlbase import CrawlingAPI

api = CrawlingAPI({"token": "YOUR_CRAWLBASE_TOKEN"})

def crawl(page_url):
    options = {"page_wait": 2000, "ajax_wait": "true"}
    response = api.get(page_url, options)
    if response["status_code"] == 200:
        return response["body"].decode("latin1")
    print(f"Request failed: {response['status_code']}")
    return None

if __name__ == "__main__":
    query = "games"
    search_url = f"https://www.amazon.com/s?k={query}"
    html = crawl(search_url)
    print(html[:500] if html else "No HTML returned")

Die beiden Warteoptionen sind wichtig für ein clientseitig gerendertes Ziel wie dieses. ajax_wait weist die API an, auf den Abschluss asynchroner Anfragen zu warten, bevor die Seite erfasst wird, und page_wait wartet nach dem Laden eine feste Anzahl von Millisekunden, damit das spät rendernde Raster zuerst erscheint. Zwei Sekunden sind ein vernünftiger Ausgangspunkt; erhöhen Sie den Wert, wenn Karten fehlen. Der Body wird als latin1 dekodiert, weil Amazon-Seiten Zeichen enthalten können, die eine strenge UTF-8-Dekodierung zum Scheitern bringen. Führen Sie das Skript aus und Sie sollten echte Produkt-Markup-Daten sehen, nicht die leere Hülle, die ein einfacher Abruf zurückgibt. Das bestätigt, dass das Rendering funktioniert, bevor Sie die API um das Parsen bitten.

Crawlbase Amazon Scraper

Amazon benötigt eine gerenderte Seite hinter einer vertrauenswürdigen IP in einem einzigen Aufruf. Die Crawling API nimmt ein JS-Token, führt die Seite in einem echten Browser aus, rotiert serverseitig durch Residential-IPs und liefert fertige Ausgabe, sodass Sie keinen Headless-Browser-Pool und keinen Proxy-Pool selbst betreiben müssen. Testen Sie es zunächst mit einer Suchanfrage im Free-Tier.

Schritt 2: Ergebnisse mit dem amazon-serp-Scraper parsen

Sie könnten das gerenderte HTML nehmen und eigene Selektoren schreiben, aber die Crawling API enthält integrierte Scraper für gängige Seiten, einschließlich Amazon. Das Übergeben der scraper-Option weist die API an, die Seite serverseitig zu parsen und strukturiertes JSON statt rohem HTML zurückzugeben. Der für Suchergebnisseiten eingebaute Scraper ist amazon-serp. Er gibt ein Array von Produkten zurück, jedes mit Feldern wie Name, Preis, Kundenbewertung, ASIN, Bild und Link sowie einem Paginierungsblock.

Hier ist eine verkürzte Form eines Produkteintrags aus amazon-serp, damit Sie wissen, welche Schlüssel zu lesen sind:

json
{
  "name": "Product Name",
  "price": "$19.99",
  "rawPrice": 19.99,
  "currency": "$",
  "offer": "Offer Details",
  "customerReview": "4.5 out of 5 stars",
  "customerReviewCount": "1,234",
  "asin": "B0XXXXXXXX",
  "image": "Product Image URL",
  "url": "Product URL",
  "isPrime": true,
  "sponsoredAd": false
}

Fügen Sie die scraper-Option zur Anfrage hinzu und der Response-Body wird JSON. Die geparste Nutzlast befindet sich unter dem body-Schlüssel, mit den Produkten unter products und einem pagination-Block daneben. Die folgende Funktion extrahiert die fünf Felder, die uns pro Produkt wichtig sind, und ordnet name als Titel, customerReview als Bewertung zu und liest asin und url direkt durch.

python
import json
from crawlbase import CrawlingAPI

api = CrawlingAPI({"token": "YOUR_CRAWLBASE_TOKEN"})

options = {
    "page_wait": 2000,
    "ajax_wait": "true",
    "scraper": "amazon-serp",
}

def parse_products(scraper_result):
    products = scraper_result.get("products", [])
    results = []
    for product in products:
        results.append({
            "title": product.get("name", ""),
            "price": product.get("price", ""),
            "rating": product.get("customerReview", ""),
            "reviews": product.get("customerReviewCount", ""),
            "asin": product.get("asin", ""),
            "link": product.get("url", ""),
            "isPrime": product.get("isPrime", False),
            "sponsored": product.get("sponsoredAd", False),
        })
    return results

Jedes Feld wird mit .get() und einem Standard gelesen, sodass ein Eintrag ohne Preis oder Bewertung eine leere Zeichenkette statt eines Absturzes des Laufs ergibt, was häufig vorkommt, da noch nicht jedes Ergebnis eine Bewertung hat. Wir behalten auch isPrime und sponsored im Datensatz: Das gesponserte Flag ermöglicht es Ihnen, bezahlte Platzierungen später aus der organischen Analyse herauszufiltern. Da der Scraper die Extraktion serverseitig durchführt, müssen Sie Amazons CSS-Klassennamen nicht selbst verfolgen, was der Teil ist, der in einem handgefertigten Scraper am häufigsten bricht.

Schritt 3: Alles zusammenführen und exportieren

Verbinden Sie nun den Abruf und das Parsen zu einem ausführbaren Skript. Fordern Sie die Suchseite mit der Scraper-Option an, laden Sie den JSON-Body, extrahieren Sie die Produkte und schreiben Sie sie dann sowohl nach JSON als auch CSV, damit die Daten für eine Tabellenkalkulation oder einen nachgelagerten Job bereit sind.

python
import json
import pandas as pd
from crawlbase import CrawlingAPI

api = CrawlingAPI({"token": "YOUR_CRAWLBASE_TOKEN"})

options = {
    "page_wait": 2000,
    "ajax_wait": "true",
    "scraper": "amazon-serp",
}

def scrape_search(page_url):
    response = api.get(page_url, options)
    if response["status_code"] != 200:
        print(f"Request failed: {response['status_code']}")
        return [], None
    payload = json.loads(response["body"].decode("latin1"))
    scraper_result = payload["body"]
    return parse_products(scraper_result), scraper_result.get("pagination")

def parse_products(scraper_result):
    products = scraper_result.get("products", [])
    results = []
    for product in products:
        results.append({
            "title": product.get("name", ""),
            "price": product.get("price", ""),
            "rating": product.get("customerReview", ""),
            "reviews": product.get("customerReviewCount", ""),
            "asin": product.get("asin", ""),
            "link": product.get("url", ""),
            "isPrime": product.get("isPrime", False),
            "sponsored": product.get("sponsoredAd", False),
        })
    return results

def main():
    query = "games"
    search_url = f"https://www.amazon.com/s?k={query}"
    products, _ = scrape_search(search_url)
    print(f"Found {len(products)} products")

    with open("amazon_products.json", "w") as f:
        json.dump(products, f, indent=2)

    pd.DataFrame(products).to_csv("amazon_products.csv", index=False)

if __name__ == "__main__":
    main()

Der scrape_search-Helfer gibt zwei Dinge zurück: die geparste Produktliste und den Paginierungsblock, den der nächste Abschnitt verwendet, um jede Seite zu durchlaufen. Das gleichzeitige Schreiben von JSON und CSV deckt die beiden häufigsten nachgelagerten Anforderungen ab: JSON erleichtert das Einspeisen der Datensätze in ein anderes Skript, und der pandas-to_csv-Aufruf liefert Ihnen in einer Zeile eine tabellenfertige Tabelle.

Wie die Ausgabe aussieht

Führen Sie das vollständige Skript mit python scraper.py aus und Sie erhalten eine saubere Liste von Datensätzen, einen pro Ergebnis, bereit zum Schreiben überall.

json
[
  {
    "title": "Catan Board Game (Base Game)",
    "price": "$43.99",
    "rating": "4.8 out of 5 stars",
    "reviews": "32,114",
    "asin": "B00U26V4VQ",
    "link": "https://www.amazon.com/dp/B00U26V4VQ",
    "isPrime": true,
    "sponsored": false
  },
  {
    "title": "Ticket to Ride Board Game",
    "price": "$34.99",
    "rating": "4.8 out of 5 stars",
    "reviews": "28,907",
    "asin": "B0001WN5LE",
    "link": "https://www.amazon.com/dp/B0001WN5LE",
    "isPrime": true,
    "sponsored": false
  }
]

Die CSV-Version derselben Daten hat eine Spalte pro Feld (title, price, rating, reviews, asin, link, isPrime, sponsored) und eine Zeile pro Produkt, was für einen schnellen Überblick in einer Tabellenkalkulation oder einem Preisvergleichsblatt geeignet ist.

Paginierung über Ergebnisseiten hinweg

Eine Seite ist eine Demo; ein echter Auftrag läuft über jede Ergebnisseite einer Anfrage. Der amazon-serp-Scraper gibt einen Paginierungsblock mit der aktuellen Seite, der nächsten Seite und der Gesamtseitenanzahl zurück:

json
"pagination": {
  "currentPage": 1,
  "nextPage": 2,
  "totalPages": 20
}

Amazon paginiert die Suche mit einem &page=-Parameter, genau wie die Website im Browser: ?k=games&page=1, ?k=games&page=2 und so weiter. Lesen Sie totalPages aus der ersten Antwort, dann schleifen Sie von Seite zwei bis zur letzten Seite und sammeln dabei Produkte.

python
import time

def scrape_all_pages(query, max_pages=5):
    base = f"https://www.amazon.com/s?k={query}"
    all_results, pagination = scrape_search(base)
    if not pagination:
        return all_results

    total_pages = min(pagination.get("totalPages", 1), max_pages)
    for page in range(2, total_pages + 1):
        page_url = f"{base}&page={page}"
        products, _ = scrape_search(page_url)
        if not products:
            break
        all_results.extend(products)
        print(f"Page {page}: {len(products)} products")
        time.sleep(2)
    return all_results

Die max_pages-Begrenzung hält einen Lauf begrenzt, damit eine breite Anfrage wie "games" nicht alle zwanzig Seiten durchläuft, und der Leere-Ergebnis-Abbruch stoppt früh, wenn eine Anfrage nur wenige Seiten hat. Das time.sleep(2) zwischen Seiten passt Anfragen an, damit Sie die Suche nicht in einer engen Schleife bombardieren, was der schnellste Weg ist, gedrosselt zu werden. Ersetzen Sie den Einzelseitenaufruf in main durch scrape_all_pages(query) und derselbe JSON- und CSV-Export verarbeitet den kombinierten Datensatz.

Den Scraper wählen oder selbst bauen

Die scraper-Option ist das, was dies kurz hält. Lassen Sie sie weg und die API gibt das vollständig gerenderte HTML zurück, das Sie dann selbst mit einer Bibliothek wie BeautifulSoup parsen würden, indem Sie Amazons Ergebniskarten-Selektoren von Hand anvisieren. Dieser Pfad gibt Ihnen vollständige Kontrolle, verlagert aber die Wartungslast auf Sie: Amazons CSS-Klassennamen ändern sich, sodass ein handgefertigter Parser regelmäßige Pflege benötigt. Der amazon-serp-Scraper absorbiert diese Arbeit, weshalb er hier der Standardansatz ist. Wenn Sie den manuellen Weg für ein benutzerdefiniertes Feld möchten, das der Scraper nicht bereitstellt, behandelt der BeautifulSoup-Guide die Parsing-Technik, und die Crawling API stellt dieselben Amazon-Scraper über einen dedizierten Endpunkt bereit, wenn Sie es so aufrufen möchten.

Entsperrt bleiben

Selbst wenn das Rendering gehandhabt wird, beobachtet Amazon Datenverkehr, der wie ein Scraper aussieht. Einige Gewohnheiten halten einen Lauf gesund, und sie gelten für jedes schwierige kommerzielle Ziel.

  • Passen Sie Ihre Anfragen an. Verteilen Sie Anfragen mit einer Verzögerung zwischen Seiten und variieren Sie Ihre Anfragen, statt einen Begriff mit voller Geschwindigkeit zu crawlen. Das time.sleep in der Paginierungsschleife ist der Boden, nicht die Decke.
  • Verlassen Sie sich auf Rotation. Ein Pool von Residential-IPs verteilt Anfragen über viele reale Benutzeradressen, sodass keine einzelne ein Ratenlimit auslöst. Die Crawling API erledigt das für Sie; wenn Sie Ihren eigenen Stack aufbauen, ist das der Teil, den Sie richtig hinbekommen müssen.
  • Lesen Sie die Statuscodes. Ein Lauf, der beginnt, Herausforderungen oder Fehler zurückzugeben, signalisiert Ihnen, dass die aktuelle Rate oder IP-Stufe nicht mehr ausreicht. Behandeln Sie das als Signal zum Zurückschalten, nicht als Rauschen zum Ignorieren.

Das umfassendere Playbook zur Aufrechterhaltung eines Scrapers gegen verteidigte Seiten finden Sie in unserem Guide zum Scrapen von Websites ohne geblockt zu werden.

Ob das Scrapen von Amazon erlaubt ist, hängt von Amazons Nutzungsbedingungen, Ihrer Jurisdiktion und dem Verwendungszweck der Daten ab. Amazons Nutzungsbedingungen schränken den automatisierten Zugriff und die Datenextraktion ein, daher kann Scraping gegen diese Bedingungen verstoßen, unabhängig davon, wie sorgfältig Ihre Tools sind. Keiner der hier gezeigten Codes ändert das; er macht nur den technischen Teil funktionsfähig. Lesen Sie Amazons Nutzungsbedingungen und seine robots.txt, und behandeln Sie beide als Grenze für das, was Sie sammeln.

Einige Grundsätze, die es wert sind, einzuhalten. Sammeln Sie nur öffentliche Daten: die Produkttitel, Preise, Bewertungen, Bewertungsanzahlen, ASINs und Eintragslinks, die jeder auf einer Suchergebnisseite ohne Konto sehen kann. Respektieren Sie Amazons angegebene Ratenerwartungen und halten Sie Ihr Anfragevolumen niedrig genug, dass Sie seine Server nicht belasten. Vermeiden Sie persönliche Daten, einschließlich alles, was mit identifizierbaren Käufern, Bewertern oder Drittanbietern über das öffentlich auf einer Ergebnisseite Aufgeführte hinaus verknüpft ist. Verbreiten Sie keine urheberrechtlich geschützten Medien wie Produktbilder oder Bewertungstexte als ob sie Ihre eigenen wären. Wenn Sie planen, die Daten kommerziell wiederzuverwenden, holen Sie die Erlaubnis oder eine offizielle Vereinbarung ein, statt zu schweigen und Zustimmung anzunehmen.

Dieser Guide ist bewusst auf öffentliche Such- und Eintragsseiten beschränkt, weil das die Linie ist, die die Arbeit vertretbar macht. Er behandelt nichts hinter einem Login, keine Konto- oder Bestelldaten, keine persönlichen Informationen, keine Zahlungs- oder Checkout-Abläufe und keinen Versuch, die Authentifizierung zu umgehen. Für lizenzierte oder Massenzugang bietet Amazon die Product Advertising API und andere offizielle Programme an, und das ist das richtige Tool, wenn Sie große Volumen, garantierte Struktur oder kommerzielle Rechte benötigen. Wenn Ihr Projekt mehr als öffentliche Einträge benötigt, ist eine offizielle API oder eine Datenvereinbarung der richtige Weg, nicht ein ausgefeilterer Scraper.

Zusammenfassung

Wichtigste Erkenntnisse

  • Die Amazon-Suche wird mit JavaScript gerendert. Ein einfacher Abruf gibt eine leere Hülle zurück, daher müssen Sie die Seite rendern, bevor Sie Produkte lesen können.
  • Das JS-Token übernimmt Rendering und eine vertrauenswürdige IP zusammen. Ein Crawling-API-Aufruf mit page_wait und ajax_wait wartet auf das dynamische Raster und liefert fertige Ausgabe zurück.
  • Der amazon-serp-Scraper parst für Sie. Übergeben Sie scraper und Sie erhalten strukturiertes JSON mit Name, Preis, customerReview, asin und url pro Produkt, sodass Sie das Schreiben von Selektoren überspringen können.
  • Paginieren Sie mit dem page-Parameter. Lesen Sie totalPages aus dem Paginierungsblock, gehen Sie &page= mit einer Begrenzung und einer Verzögerung durch und führen Sie die Ergebnisse zusammen.
  • Bleiben Sie bei öffentlichen Daten. Respektieren Sie Amazons Nutzungsbedingungen und robots.txt, bevorzugen Sie die offizielle Product Advertising API für lizenzierte oder Massendaten und berühren Sie niemals Konten, Bestellungen oder persönliche Informationen.

Häufig gestellte Fragen

Warum gibt eine einfache Anfrage bei Amazon keine Produkte zurück?

Weil Amazon einen Großteil seines Suchrasters clientseitig mit JavaScript und Ajax lädt. Das anfängliche HTML ist eine Hülle, die sich erst füllt, wenn die Skripte der Seite in einem Browser ausgeführt werden, sodass eine rohe HTTP-Anfrage Status 200 zurückgibt, aber die Einträge leer lässt. Um echte Daten zu erhalten, müssen Sie die Seite zuerst rendern, was das JS-Token der Crawling API für Sie erledigt.

Brauche ich das normale Token oder das JS-Token für Amazon?

Das JS-Token. Das normale Token ruft statisches HTML ab, was bei Amazon dieselbe leere Hülle ist, die ein einfacher Abruf zurückgibt. Das JS-Token rendert die Seite in einem echten Browser vor dem Parsen, sodass die Produktkarten vorhanden sind, wenn der amazon-serp-Scraper sie extrahiert.

Was gibt der amazon-serp-Scraper zurück?

Er gibt ein JSON-Objekt mit einem products-Array und einem pagination-Block zurück. Jedes Produkt enthält Felder wie name, price, rawPrice, currency, customerReview, customerReviewCount, asin, image, url, isPrime und sponsoredAd. Dieser Beitrag ordnet einige davon einem sauberen Datensatz mit Titel, Preis, Bewertung, ASIN und Link zu.

Wie scrappe ich jede Seite einer Amazon-Suche?

Lesen Sie totalPages aus dem Paginierungsblock in der ersten Antwort, dann schleifen Sie die Such-URL mit einem inkrementierenden &page=-Parameter ab Seite zwei. Scrapen Sie jede Seite mit derselben Funktion, begrenzen Sie die Seitenanzahl, damit eine breite Anfrage begrenzt bleibt, und fügen Sie eine kurze Verzögerung zwischen Anfragen ein, damit Sie den Lauf anpassen und nicht gedrosselt werden.

Kann ich Bestell-, Konto- oder Checkout-Daten von Amazon scrapen?

Nein, und dieser Guide behandelt das nicht. Bestellverlauf, Kontodetails und Checkout-Abläufe befinden sich hinter einem Login und sind daher keine öffentlichen Daten. Das Scrapen von anmeldegeschützten Inhalten oder das Umgehen der Authentifizierung, um diese zu erreichen, liegt außerhalb des Rahmens und verstößt gegen Amazons Bedingungen. Für sanktionierten Zugang zu umfangreicheren Daten ist der richtige Weg die offizielle Product Advertising API oder eine Partnervereinbarung.

Wie vermeide ich eine Blockierung beim Scrapen von Amazon?

Halten Sie Ihre anfragende Rate pro IP niedrig, fügen Sie zwischen Seiten eine Verzögerung ein, variieren Sie Ihre Anfragen statt einer Schleife über einen Begriff, und leiten Sie durch rotierende Residential-IPs, damit keine einzelne Adresse ein Ratenlimit auslöst. Die Crawling API verwaltet die Rotation und einen vertrauenswürdigen IP-Pool für Sie; wenn Sie Ihren eigenen Stack aufbauen, ist das der Teil, in den Sie investieren sollten. Beobachten Sie die Statuscodes und schalten Sie zurück, wenn Sie Herausforderungen sehen.

Jetzt loslegen

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.

Self-Service · Kein Verkaufsgespräch erforderlich · Enterprise-Crawl-Volumen verfügbar