Ein Amazon-Produktlisting ist um seine Bilder herum aufgebaut: eine Haupt-Heldenaufnahme, eine Galerie alternativer Blickwinkel, Lifestyle-Fotos und Infografiken, die Funktionen und Größen erläutern. Diese Bilder sind öffentlich, und sie in großen Mengen abrufen zu können, ist nützlich für den Katalogaufbau, die Produktrecherche, die Wettbewerbsanalyse und das Einspeisen eines Datensatzes in die Bildklassifizierung oder visuelle Suche.

Diese Anleitung zeigt Ihnen, wie Sie Bilder von einer Amazon-Produktseite herunterladen mit Python auf zuverlässige Weise. Sie bauen einen kleinen, lauffähigen Scraper, der eine gerenderte Produktseite über die Crawling API abruft, die Bild-URLs extrahiert (das Hauptbild sowie die Galerie und Thumbnails) und jede einzelne in einer lokalen Datei speichert. Die gesamte Anleitung bleibt auf öffentliche Produktbilder beschränkt, und der Abschnitt zur Rechtslage am Ende ist kein Standardtext, lesen Sie ihn also, bevor Sie dies auf irgendein reales Volumen richten.

Was Sie bauen werden

Ein Python-Skript, das eine Amazon-Produkt-URL entgegennimmt, die gerenderte Seite über die Crawling API abruft, jede Produktbild-URL sammelt und jede in einen lokalen Ordner herunterlädt. Wir verwenden eine einzelne Produktseite als durchgängiges Beispiel und extrahieren diese Ausgaben:

  • Hauptbild das primäre Heldenbild, das oben im Listing gezeigt wird.
  • Galeriebilder die alternativen Blickwinkel und Lifestyle-Aufnahmen hinter dem Thumbnail-Streifen.
  • Thumbnails die kleinen Vorschaubilder, die jeder Galerieaufnahme zugeordnet sind.
  • Bild-URLs der direkte Link in voller Auflösung zu jeder Bilddatei.
  • Lokale Dateien jedes Bild auf der Festplatte gespeichert in einem Ordner pro Produkt.

Warum eine einfache Anfrage bei Amazon scheitert

Wenn Sie eine Amazon-Produkt-URL mit einem nackten HTTP-Client anfragen, erhalten Sie selten die Galerie, für die Sie gekommen sind. Zwei Dinge arbeiten gegen Sie. Erstens lädt Amazon einen Großteil der Bildgalerie clientseitig: die hochauflösenden Varianten und die Zuordnung von Thumbnail zu Hauptbild werden per JavaScript befüllt, nachdem das initiale HTML angekommen ist, sodass eine rohe Anfrage oft nur einen niedrigauflösenden Platzhalter oder einen unvollständigen Satz sieht. Zweitens erkennt Amazon automatisierten Datenverkehr schnell. Rechenzentrums-IPs und Anfragemuster, die nicht wie ein echter Browser aussehen, werden mit einem CAPTCHA herausgefordert oder blockiert, bevor sie überhaupt das gerenderte Listing erreichen.

Ein funktionierender Amazon-Bild-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 liest. Sie können das selbst mit einem Headless-Browser plus einem Pool rotierender Residential-Proxys zusammenbauen, aber diese zusammenzufügen und gesund zu halten, macht den Großteil der Arbeit aus. Die Crawling API fasst beides in einem einzigen Aufruf zusammen: Sie senden ihr die URL mit einem JavaScript-Token, sie rendert die Seite hinter einer vertrauenswürdigen Residential-IP und gibt Ihnen fertiges HTML zum Parsen zurück.

Warum das JS-Token

Crawlbase bietet zwei Token-Typen an. Das normale Token ruft statisches HTML ab; das JavaScript-Token (JS) rendert die Seite zuerst in einem echten Browser. Amazon hydratisiert die hochauflösende Galerie clientseitig, sodass das JS-Token Ihnen den vollständigen Bildsatz liefert. Die Verwendung des normalen Tokens kann eine dünnere Seite zurückgeben, auf der einige Galerievarianten nie geladen wurden.

Voraussetzungen

Sie brauchen ein paar Dinge, bevor Sie irgendeinen Code schreiben. Keines davon dauert lange.

Grundlegendes Python. Sie sollten in der Lage sein, ein Python-Skript zu schreiben und auszuführen und Pakete mit pip zu installieren. Wenn Sie neu in der Sprache sind, bringen Sie die offizielle Python-Dokumentation und jeder Anfängerkurs auf das Niveau, das dieses Tutorial voraussetzt. Die Begleitanleitung zu wie man Bilder mit Python herunterlädt behandelt die Mechanik des Dateischreibens ausführlicher.

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

Ein Crawlbase-Konto und JS-Token. Melden Sie sich an, öffnen Sie Ihr Dashboard und kopieren Sie Ihr JavaScript-Token (JS) von der Account-Docs-Seite. Sie erhalten bis zu 20.000 kostenlose Anfragen, und Sie zahlen nur für erfolgreiche. Behandeln Sie das Token wie ein Passwort: Es authentifiziert Ihre Anfragen, halten Sie es also aus der Versionskontrolle heraus.

Das Projekt einrichten

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

bash
python --version

python -m venv amazon_env
source amazon_env/bin/activate

pip install crawlbase beautifulsoup4 requests

Unter Windows aktivieren Sie die Umgebung mit amazon_env\Scripts\activate anstelle der source-Zeile. Drei Abhängigkeiten erledigen die Arbeit: crawlbase ist der offizielle Client für die Crawling API, beautifulsoup4 parst das zurückgegebene HTML, damit Sie Bild-URLs per Selektor herausziehen können, und requests lädt jede Bilddatei auf die Festplatte herunter.

Die Amazon-Bildgalerie verstehen

Amazon zeigt mehrere Bildtypen auf einer Produktseite, und es hilft, sie zu kennen, bevor man Selektoren schreibt. Das Hauptbild ist die primäre Produktaufnahme oben im Listing. Alternative Bilder zeigen verschiedene Blickwinkel oder Funktionen. Lifestyle-Bilder zeigen das Produkt im realen Einsatz, und Infografiken erläutern Funktionen, Größen oder Spezifikationen. Sie alle befinden sich in derselben Galerie und teilen denselben Bild-Host.

Bevor Sie Selektoren schreiben, öffnen Sie eine Produktseite in Ihrem Browser, klicken Sie mit der rechten Maustaste auf das Hauptbild und wählen Sie Untersuchen. Sie sehen das Heldenbild in einem Container mit einer stabilen id von landingImage (auch erreichbar als #imgTagWrapperId img), und der Thumbnail-Streifen ist als Liste kleiner Bilder mit der id altImages gerendert. Amazon liefert eine dimensionierte Variante jedes Bildes aus, indem es die Abmessungen in den Dateinamen kodiert, sodass sich eine Thumbnail-URL und ihr vollauflösendes Gegenstück nur durch dieses Größen-Token unterscheiden. Dieses Detail ist es, das Ihnen erlaubt, einen kleinen Vorschau-Link in einen hochauflösenden Download zu verwandeln.

Schritt 1: Die gerenderte Produktseite abrufen

Beginnen Sie damit, die fertige Seite zu holen. Importieren Sie die Klasse CrawlingAPI, initialisieren Sie sie mit Ihrem JS-Token und fragen Sie die Produkt-URL an. Den Statuscode zu prüfen, bevor Sie parsen, hält Fehler laut statt still.

python
from crawlbase import CrawlingAPI

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

def crawl(page_url):
    options = {"ajax_wait": "true", "page_wait": 4000}
    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__":
    product_url = "https://www.amazon.com/dp/B0CHX3QBCH"
    html = crawl(product_url)
    print(html[:500] if html else "No HTML returned")

Die zwei Wait-Optionen sind wichtig für eine clientseitig gerenderte Galerie wie diese. ajax_wait weist die API an, auf das Fertigladen asynchroner Inhalte zu warten, und page_wait hält für eine feste Anzahl Millisekunden nach dem Laden, damit die spät rendernden Bildvarianten erscheinen, bevor die Seite erfasst wird. Vier Sekunden sind ein vernünftiger Anfang; erhöhen Sie es, wenn die Galerie dünn zurückkommt. Der Body wird als latin1 dekodiert, weil Amazon-Seiten Zeichen einmischen, an denen strikte UTF-8-Dekodierung scheitern kann. Führen Sie das Skript aus, und Sie sollten echtes Produkt-Markup sehen, was bestätigt, dass das Rendering funktioniert, bevor Sie einen einzigen Selektor schreiben.

Crawlbase Amazon Scraper

Amazon braucht eine gerenderte Seite hinter einer vertrauenswürdigen IP, in einem Aufruf, bevor seine vollauflösende Galerie überhaupt im HTML ist. Die Crawling API nimmt ein JS-Token, führt die Seite in einem echten Browser aus, rotiert serverseitig durch Residential-IPs und händigt Ihnen fertiges HTML aus, sodass Sie sich das Betreiben einer Headless-Flotte und eines Proxy-Pools selbst ersparen. Richten Sie sie zuerst auf eine Produkt-URL im kostenlosen Tarif.

Schritt 2: Die Bild-URLs extrahieren

Mit gerendertem HTML in der Hand laden Sie es in BeautifulSoup und ziehen die Bildlinks heraus. Lesen Sie das Hauptbild aus #landingImage, sammeln Sie dann die Galerie aus dem Thumbnail-Streifen unter #altImages. Amazon speichert Thumbnails in einer kleinen Größe, also schreiben Sie jede Thumbnail-URL in ihre vollauflösende Form um, indem Sie das Größen-Token entfernen, das Amazon in den Dateinamen kodiert.

python
import re
from bs4 import BeautifulSoup

def full_res(url):
    # Amazon encodes a size token like _SX466_ or _AC_US40_ into the
    # filename; dropping it returns the full-resolution image.
    return re.sub(r"\._[^.]+_\.", ".", url)

def extract_image_urls(html):
    soup = BeautifulSoup(html, "html.parser")
    urls = []

    main = soup.select_one("#landingImage, #imgTagWrapperId img")
    if main and main.get("src"):
        urls.append(full_res(main["src"]))

    for thumb in soup.select("#altImages img"):
        src = thumb.get("src")
        if src and "images/I/" in src:
            urls.append(full_res(src))

    # De-duplicate while preserving order.
    seen = set()
    unique = []
    for u in urls:
        if u not in seen:
            seen.add(u)
            unique.append(u)
    return unique

Der Helfer full_res ist der Schlüsselschritt. Amazon liefert dasselbe Bild in vielen Größen aus, indem es ein Token wie ._SX466_ oder ._AC_US40_ zwischen die Bild-id und die Dateierweiterung einfügt; der Regex entfernt dieses Token, sodass Sie die originale Datei in voller Auflösung behalten statt eines Thumbnails. Das Hauptbild kommt aus #landingImage, mit #imgTagWrapperId img als Fallback, und die Galerie kommt aus den Thumbnail-Bildern unter #altImages. Das Filtern auf images/I/ in der Quelle überspringt Amazon-Sprite- und Icon-Assets, die keine Produktfotos sind, und der abschließende Deduplizierungsdurchlauf entfernt den Fall, in dem das Hauptbild auch als erstes Thumbnail erscheint.

Selektoren driften

Amazons Galerie-Markup ändert sich zwischen Seitenvarianten und im Lauf der Zeit. Die ids #landingImage und #altImages gehören zu den langlebigeren Ankerpunkten, aber ein bestimmtes Listing kann seine Galerie anders rendern. Wenn die Liste leer zurückkommt, untersuchen Sie die Live-Produktseite erneut in den Entwicklertools Ihres Browsers und aktualisieren Sie die Selektoren. Periodische Selektorpflege ist für jeden produktiven Scraper normal, kein Zeichen, dass etwas kaputt ist.

Schritt 3: Jedes Bild in eine lokale Datei herunterladen

Verwandeln Sie nun die URLs in Dateien. Fragen Sie für jede Bild-URL die Bytes an und schreiben Sie sie in einen Ordner pro Produkt, wobei Sie den Dateinamen aus der Bild-id in der URL ableiten. Den Download über die Crawling API zu leiten, hält ihn auf demselben vertrauenswürdigen IP-Pfad wie den Seitenabruf, was vermeidet, dass eine separate Anfrage von Ihrer eigenen IP blockiert wird.

python
import os
from urllib.parse import urlparse

def download_images(urls, folder="amazon_images"):
    os.makedirs(folder, exist_ok=True)
    saved = []
    for i, url in enumerate(urls):
        name = os.path.basename(urlparse(url).path) or f"image_{i}.jpg"
        path = os.path.join(folder, name)
        response = api.get(url)
        if response["status_code"] == 200:
            with open(path, "wb") as f:
                f.write(response["body"])
            saved.append(path)
            print(f"Saved {path}")
        else:
            print(f"Skipped {url}: {response['status_code']}")
    return saved

Die Funktion erstellt den Ausgabeordner einmal mit exist_ok=True, sodass ein erneuter Lauf nicht fehlschlägt, und durchläuft dann die URL-Liste. Der Dateiname kommt aus dem letzten Pfadsegment der URL, was bei Amazon die eindeutige Bild-id ist, sodass zwei verschiedene Galerieaufnahmen nie auf der Festplatte kollidieren. Jedes Bild wird im Binärmodus geschrieben, und eine Nicht-200-Antwort wird gemeldet und übersprungen, statt den Lauf abstürzen zu lassen. Weil die Anfrage zurück über api.get geht, nutzt der Bildabruf denselben vertrauenswürdigen IP-Pfad wie der Seitenabruf wieder.

Schritt 4: Alles zusammenfügen

Verdrahten Sie nun den Abruf, die Extraktion und den Download zu einem lauffähigen Skript.

python
import os
import re
import json
from urllib.parse import urlparse
from crawlbase import CrawlingAPI
from bs4 import BeautifulSoup

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

def crawl(page_url):
    options = {"ajax_wait": "true", "page_wait": 4000}
    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

def full_res(url):
    return re.sub(r"\._[^.]+_\.", ".", url)

def extract_image_urls(html):
    soup = BeautifulSoup(html, "html.parser")
    urls = []
    main = soup.select_one("#landingImage, #imgTagWrapperId img")
    if main and main.get("src"):
        urls.append(full_res(main["src"]))
    for thumb in soup.select("#altImages img"):
        src = thumb.get("src")
        if src and "images/I/" in src:
            urls.append(full_res(src))
    seen, unique = set(), []
    for u in urls:
        if u not in seen:
            seen.add(u)
            unique.append(u)
    return unique

def download_images(urls, folder="amazon_images"):
    os.makedirs(folder, exist_ok=True)
    saved = []
    for i, url in enumerate(urls):
        name = os.path.basename(urlparse(url).path) or f"image_{i}.jpg"
        path = os.path.join(folder, name)
        response = api.get(url)
        if response["status_code"] == 200:
            with open(path, "wb") as f:
                f.write(response["body"])
            saved.append(path)
            print(f"Saved {path}")
    return saved

def main():
    product_url = "https://www.amazon.com/dp/B0CHX3QBCH"
    html = crawl(product_url)
    if not html:
        return
    urls = extract_image_urls(html)
    print(json.dumps(urls, indent=2))
    download_images(urls)

if __name__ == "__main__":
    main()

Speichern Sie dies als amazon_images.py, fügen Sie Ihr Token ein und führen Sie python amazon_images.py aus. Das Skript gibt die Liste der Bild-URLs in voller Auflösung aus und lädt dann jede in einen amazon_images-Ordner neben dem Skript herunter. Wenn Sie auch die strukturierten Produktfelder scrapen (Titel, Preis, ASIN und so weiter), erweitert die Begleitanleitung zu wie man Amazon-Produktdaten scrapt denselben Abruf zu einem vollständigen Datensatz.

Wie die Ausgabe aussieht

Die ausgegebene Liste ist die Menge der Bild-URLs, die der Parser gefunden hat, in Galeriereihenfolge, und der Ordner füllt sich mit einer Datei pro URL.

json
[
  "https://m.media-amazon.com/images/I/71xKDtMfaZL.jpg",
  "https://m.media-amazon.com/images/I/61hr19MzN3L.jpg",
  "https://m.media-amazon.com/images/I/71f7tsamQ4L.jpg",
  "https://m.media-amazon.com/images/I/81Qj0nFLanL.jpg"
]

Auf der Festplatte erhalten Sie die passenden Dateien, jede benannt nach ihrer Bild-id:

bash
amazon_images/
  71xKDtMfaZL.jpg
  61hr19MzN3L.jpg
  71f7tamQ4L.jpg
  81Qj0nFLanL.jpg

Auf viele Produkte skalieren

Ein Produkt ist eine Demo; ein echter Job läuft über eine Liste von Produkten. Weil jeder Schritt eine schlichte Funktion ist, skalieren Sie, indem Sie über eine Liste von Produkt-URLs iterieren und jedem seinen eigenen Ausgabeordner geben, sodass sich die Dateien nie vermischen. Takten Sie die Schleife mit einer kurzen Verzögerung, damit Sie Amazon nicht in einem engen Zyklus hämmern, was der schnellste Weg ist, gedrosselt zu werden.

python
import time

def scrape_many(product_urls):
    for url in product_urls:
        asin = url.rstrip("/").split("/")[-1]
        html = crawl(url)
        if not html:
            continue
        urls = extract_image_urls(html)
        download_images(urls, folder=f"amazon_images/{asin}")
        print(f"{asin}: {len(urls)} images")
        time.sleep(2)

Jedes Produkt erhält einen Ordner, der nach seiner ASIN benannt ist, dem letzten Pfadsegment einer /dp/ASIN-URL, sodass ein Stapel von Produkten ordentlich getrennt auf der Festplatte bleibt. Das time.sleep(2) zwischen Produkten taktet den Lauf. Zum Ableiten und Validieren dieser ASIN aus einer beliebigen Amazon-URL geht die Anleitung zu wie man die Amazon-ASIN findet und scrapt tiefer.

Unblockiert bleiben

Selbst wenn das Rendering erledigt ist, achtet Amazon auf scraper-förmigen Datenverkehr. Ein paar Gewohnheiten halten einen Lauf gesund, und sie gelten für jedes harte kommerzielle Ziel.

  • Takten Sie Ihre Anfragen. Verteilen Sie Anfragen mit einer Verzögerung zwischen Produkten und vermeiden Sie es, dasselbe Listing in einer engen Schleife zu scrapen. Das time.sleep in der Stapelschleife ist die Untergrenze, nicht die Obergrenze.
  • Setzen Sie auf Rotation. Ein Pool von Residential-IPs verteilt Anfragen über viele Adressen echter Nutzer, sodass keine einzelne ein Rate-Limit auslöst. Die Crawling API erledigt das für Sie; wenn Sie Ihren eigenen Stack bauen, ist das der Teil, den Sie richtig machen müssen.
  • Lesen Sie die Statuscodes. Ein Lauf, der anfängt, Challenges oder Fehler zurückzugeben, sagt Ihnen, dass die aktuelle Rate oder IP-Stufe nicht mehr ausreicht. Behandeln Sie das als Signal zum Zurückfahren, nicht als zu ignorierendes Rauschen.

Für das umfassendere Vorgehen siehe die Anleitung zu wie man Websites scrapt, ohne blockiert zu werden. Dasselbe Muster aus Abrufen-dann-Herunterladen funktioniert auch auf anderen bildlastigen Seiten; die Begleitanleitung zum Scrapen von Bildern von DeviantArt wendet es auf ein ganz anderes Galerie-Layout an.

Ob das Herunterladen von Amazon-Bildern erlaubt ist, hängt von Amazons Nutzungsbedingungen, Ihrer Rechtsordnung und davon ab, was Sie mit den Bildern tun. Amazons Nutzungsbedingungen schränken den automatisierten Zugriff ein und setzen klare Grenzen für die Wiederverwendung seiner Inhalte, sodass Scraping gegen diese Bedingungen verstoßen kann, egal wie sorgfältig Ihre Werkzeuge sind. Nichts vom Code hier ändert das; er bringt nur den technischen Teil zum Laufen. Lesen Sie Amazons Nutzungsbedingungen und seine robots.txt, und behandeln Sie beide als Grenze dessen, was Sie sammeln.

Der wichtigste Punkt ist die nachgelagerte Verwendung. Produktbilder auf Amazon sind fast immer urheberrechtlich geschützt, im Besitz der Marke, des Verkäufers oder des Fotografen, nicht in Ihrem und nicht in Amazons Besitz zur Weiterlizenzierung. Öffentliche Bilder zur Analyse zu sammeln, ist eine Sache: sie in eine Bildklassifizierung einzuspeisen, eine interne Katalogreferenz aufzubauen oder Varianten über Listings hinweg zu vergleichen. Diese Bilder weiterzuverbreiten oder erneut zu veröffentlichen, sie als Ihre eigenen auszugeben oder sie in Ihrem eigenen Shop wiederzuverwenden, ist eine andere Angelegenheit und kann Urheberrechte verletzen. Verbreiten Sie keine urheberrechtlich geschützten Produktbilder weiter, und entfernen oder verändern Sie keine Wasserzeichen. Im Zweifel holen Sie die Erlaubnis des Rechteinhabers ein.

Diese Anleitung ist bewusst auf öffentliche Produktbilder beschränkt, weil das die Grenze ist, die die Arbeit verteidigbar hält. Sie behandelt nichts hinter einem Login, keine Konto- oder Bestelldaten, keine persönlichen Informationen und keinen Versuch, eine Authentifizierung zu umgehen. Für lizenzierten oder massenhaften Zugriff bietet Amazon die Product Advertising API und Verkäuferprogramme an, und das ist das richtige Werkzeug, wenn Sie große Mengen, garantierte Struktur oder kommerzielle Rechte an den Medien benötigen. Wenn Ihr Projekt mehr als öffentliche Bilder für Ihre eigene Analyse braucht, ist eine offizielle API oder eine direkte Vereinbarung mit dem Rechteinhaber der richtige Weg, nicht ein cleverer Scraper.

Zusammenfassung

Wichtigste Erkenntnisse

  • Amazon hydratisiert seine Galerie clientseitig. Ein einfacher Abruf gibt oft einen dünnen Bildsatz zurück, also rendern Sie die Seite mit einem JS-Token, bevor Sie sie parsen.
  • Ein Aufruf liefert Ihnen Rendering und eine vertrauenswürdige IP. Die Crawling API mit ajax_wait und page_wait wartet, bis die Galerie geladen ist, und gibt dann fertiges HTML zurück.
  • Das Hauptbild und die Galerie haben stabile Ankerpunkte. Lesen Sie #landingImage für das Heldenbild und #altImages img für die Thumbnails, und entfernen Sie dann Amazons Größen-Token, um die Datei in voller Auflösung zu erhalten.
  • Laden Sie über denselben API-Pfad herunter. Bildabrufe zurück über api.get zu leiten, hält sie auf der vertrauenswürdigen IP und benennt jede Datei nach ihrer eindeutigen Bild-id.
  • Nutzen Sie öffentliche Bilder nur zur Analyse. Respektieren Sie Amazons ToS und robots.txt, verbreiten Sie keine urheberrechtlich geschützten Produktbilder weiter, und bevorzugen Sie eine offizielle API für lizenzierten oder massenhaften Zugriff.

Häufig gestellte Fragen

Warum gibt eine einfache Anfrage eine niedrigauflösende oder unvollständige Galerie zurück?

Weil Amazon die hochauflösenden Bildvarianten und die Thumbnail-Zuordnung mit JavaScript befüllt, nachdem das initiale HTML geladen ist. Eine rohe HTTP-Anfrage sieht die Seite, bevor diese Skripte laufen, sodass sie oft einen Platzhalter oder einen partiellen Satz erhält. Die Seite zuerst zu rendern, was das JS-Token der Crawling API tut, liefert Ihnen die vollständige Galerie, bevor Sie sie parsen.

Wie erhalte ich das Bild in voller Auflösung statt eines Thumbnails?

Amazon kodiert die angeforderte Größe in den Dateinamen mit einem Token wie ._SX466_ oder ._AC_US40_ zwischen der Bild-id und der Erweiterung. Dieses Token mit einem kleinen Regex zu entfernen, gibt die originale Datei in voller Auflösung zurück. Der Helfer full_res in dieser Anleitung tut genau das, sowohl für das Hauptbild als auch für jedes Thumbnail.

Welche Selektoren halten die Amazon-Produktbilder?

Das Hauptbild sitzt bei #landingImage (auch erreichbar über #imgTagWrapperId img), und die alternativen, Lifestyle- und Infografik-Aufnahmen kommen aus dem Thumbnail-Streifen unter #altImages. Das Filtern auf images/I/ in der Quelle überspringt Sprites und Icons. Diese ids sind langlebig, aber nicht dauerhaft, untersuchen Sie also die Live-Seite erneut, wenn die Liste leer zurückkommt.

Kann ich Amazon-Bilder scrapen, ohne blockiert zu werden?

Halten Sie Ihre Anfragerate niedrig, fügen Sie eine Verzögerung zwischen Produkten ein und leiten Sie über rotierende Residential-IPs, sodass keine einzelne Adresse ein Rate-Limit auslöst. Die Crawling API verwaltet Rotation und einen vertrauenswürdigen IP-Pool für Sie; wenn Sie Ihren eigenen Stack bauen, ist das der Teil, in den Sie investieren sollten. Beobachten Sie die Statuscodes und fahren Sie zurück, wenn Sie anfangen, Challenges zu sehen.

Öffentliche Produktbilder für Ihre eigene Analyse zu sammeln, ist im Allgemeinen risikoarm, aber die Bilder selbst sind in der Regel urheberrechtlich geschützt, im Besitz der Marke, des Verkäufers oder des Fotografen. Sie weiterzuverbreiten, erneut zu veröffentlichen oder kommerziell wiederzuverwenden, kann dieses Urheberrecht verletzen, und automatisierter Zugriff kann ungeachtet dessen gegen Amazons Bedingungen verstoßen. Lesen Sie Amazons Nutzungsbedingungen und robots.txt, verbreiten Sie keine urheberrechtlich geschützten Bilder weiter, und bevorzugen Sie die offizielle Product Advertising API für lizenzierten Zugriff.

Kann ich Bilder für eine ganze Liste von Produkten auf einmal herunterladen?

Ja. Weil jeder Schritt eine schlichte Funktion ist, iterieren Sie über eine Liste von Produkt-URLs, geben jedem seinen eigenen Ordner, der nach seiner ASIN benannt ist, sodass sich die Dateien nicht vermischen, und fügen eine kurze Verzögerung zwischen Produkten hinzu, um den Lauf zu takten. Der Helfer scrape_many in dieser Anleitung ist ein funktionierender Ausgangspunkt für diesen Stapeljob.

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