Sind Sie es leid, dass IP-Sperren Ihren Betrieb behindern? Setzen Sie unsere Residential-Proxys für eine schnelle Rotation oder sichere ISP-Proxys für eine maximale Lebensdauer Ihrer Konten ein.
Das Auslesen von Bildern klingt einfach – man muss nur die URLs finden und die Dateien herunterladen. In der Praxis erschwert das moderne Web jedoch fast jeden Schritt dieses Vorgangs mehr, als es eigentlich sein sollte: Bildergalerien werden beim Scrollen erst nach und nach geladen, Bild-URLs sind durch CDNs signiert, die Version in höchster Qualität wird erst beim Bewegen des Mauszeigers angezeigt, und jede Website, die es wert ist, ausgeleistet zu werden, verfügt über Anti-Bot-Maßnahmen, die ein naives Skript bereits nach wenigen hundert Anfragen als verdächtig markieren.
Dieser Leitfaden behandelt die Methoden, die im Jahr 2026 tatsächlich funktionieren – von einmalig einsetzbaren Browser-Erweiterungen bis hin zu produktionsreifen Python-Pipelines – sowie jene Aspekte, die in den meisten Tutorials außer Acht gelassen werden: den Umgang mit JavaScript-gerenderten Inhalten, die Umgehung von Hotlink-Schutzmaßnahmen sowie die rechtlichen und ethischen Aspekte, die immer schwerer zu ignorieren sind.
Wählen Sie die für Sie passende Methode aus, je nachdem, wie viel Sie tatsächlich benötigen
Es gibt grob gesagt vier Stufen des Bild-Scrapings, und die Wahl des richtigen Tools hängt vom Umfang, dem Ziel sowie der Häufigkeit ab, mit der Sie dies durchführen werden.
Stufe 1 – Einmalig, geringes Volumen, ein Standort. Verwenden Sie eine Browser-Erweiterung oder klicken Sie mit der rechten Maustaste und speichern Sie die Datei. Alles andere ist übertrieben.
Stufe 2 – Zehn bis Hunderte von Bildern von einer Website. Ein spezieller Bild-Extraktor oder ein einfaches Python-Skript, das eine einzelne Seite durchläuft.
Stufe 3 – Tausende von Bildern auf zahlreichen Seiten oder Websites. Ein echtes Scraping-Skript mit angemessener Ratenbegrenzung, Wiederholungslogik und Speicherplatz.
Stufe 4 – Kontinuierliche, groß angelegte Datenerfassung (ML-Trainingsdaten, laufende Marktforschung). Eine Produktionspipeline mit rotierenden Proxys, Unterstützung für Headless-Browser und einem Echtdatenspeicher.
In den meisten Artikeln zu diesem Thema werden diese beiden Aspekte miteinander vermischt. Der richtige Ansatz für Stufe 1 unterscheidet sich tatsächlich von dem für Stufe 4 und ist nicht lediglich eine kleinere Version davon.
Stufe 1: Browser-Erweiterungen
Um ein Dutzend Bilder von einer einzigen Seite herunterzuladen, sind Browser-Erweiterungen nach wie vor der schnellste Weg. Die folgenden lohnen sich derzeit besonders:
- Bild-Downloader (Chrome) – unkomplizierter Massen-Download mit Filterung nach Abmessungen und Dateityp. Das, was einer universellen Standardeinstellung am nächsten kommt.
- Imageye (Chrome, Edge) – ähnlicher Funktionsumfang, gute Benutzeroberfläche für Filter nach Größe und Format.
- DownThemAll! (Firefox) – ein langjähriger Klassiker, der nach wie vor gepflegt wird und mehr Dateiformate als nur Bilder unterstützt.
Vermeiden Sie Erweiterungen, die seit über einem Jahr nicht mehr aktualisiert wurden (viele der „Doppelklick-Downloader“-Tools aus dem Jahr 2020 werden mittlerweile nicht mehr gepflegt oder sind heimlich schädlich – der Erweiterungs-Store von Chrome ist schon seit einiger Zeit ein Friedhof). Überprüfen Sie das Datum der letzten Aktualisierung, bevor Sie etwas installieren.
Die Grenze jeder Erweiterung: Sie laden jede Seite immer noch selbst. Ab ein paar hundert Bildern bekommen Sie Krämpfe in der Hand.
Stufe 2: Bild-Extraktoren und Headless-Tools
Eine Verbesserung gegenüber Erweiterungen: Tools, die eine URL entgegennehmen und alle Bilder von der gerenderten Seite extrahieren. Die meisten sind auf jeweils eine Website beschränkt, übernehmen jedoch das Klicken für Sie.
Bei einmaligen Aufträgen ist die einfachste Option oft einfach wget über die Befehlszeile:
bash
wget -r -l 2 -A jpg,jpeg,png,webp,gif --no-parent https://example.com/gallery/
Damit werden Bilder rekursiv bis in die zweite Ebene einer URL heruntergeladen, wobei nur Bilddateiformate berücksichtigt werden. Diese Funktion ist seit 25 Jahren in jeder Linux-Distribution enthalten und funktioniert nach wie vor bei statischen Websites. Unter Windows lautet das entsprechende Kommando curl oder PowerShells Invoke-WebRequest.
Für Websites, auf denen Sie lieber auf Skripte verzichten möchten, haben sich folgende No-Code-Tools bewährt: Octoparse (nach wie vor zuverlässig, Freemium-Modell), Apify (eher auf Entwickler ausgerichtet, Marktplatz für vorgefertigte Scraper, darunter auch bildspezifische), Bardeen (neuer, auf Browser-Erweiterungen basierend, lässt sich in andere Workflow-Tools integrieren). ParseHub ist nicht mehr die naheliegende Empfehlung, die es vor drei Jahren war – die kostenlose Nutzungsstufe wurde erheblich eingeschränkt.
Diese Tools unterstützen die Paginierung, grundlegende JavaScript-Darstellung und den Export im CSV-Format. Bei stark gesicherten Websites oder bei Inhalten mit unendlichem Bildlauf hinter einer Anmeldung stoßen sie jedoch an ihre Grenzen.
Stufe 3: Python – die Standardwahl für den praktischen Entwickler
Wenn Sie wirklich umfangreiches Codevolumen benötigen, schreiben Sie es selbst. Der Python-Stack, der im Jahr 2026 zuverlässig funktioniert, ist kurz:
requests— ruft Seiten ab und lädt Bilddateien herunterBeautifulSoup— analysiert HTML und findet<img>Tags undsrcsetAttributePlaywright— nutzt einen echten Headless-Browser, wenn die Website JavaScript benötigt, um Bilder darzustellenPillow— verarbeitet heruntergeladene Bilder (Größe anpassen, Duplikate entfernen, Format überprüfen)
Der grundlegende Ablauf für eine statische Seite:
Python
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
import os
url = "https://example.com/gallery"
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"}
resp = requests.get(url, headers=headers)
soup = BeautifulSoup(resp.text, "html.parser")
os.makedirs("images", exist_ok=True)
for img in soup.find_all("img"):
src = img.get("src") or img.get("data-src")
if not src:
continue
full_url = urljoin(url, src)
filename = os.path.join("images", os.path.basename(full_url.split("?")[0]))
with open(filename, "wb") as f:
f.write(requests.get(full_url, headers=headers).content)
Das ist die 30-Sekunden-Version. In der Praxis müssen Sie sich jedoch mit einigen Gegebenheiten auseinandersetzen:
- Bilder mit verzögertem Laden in … wohnen
data-src,data-original, oder ähnliche Merkmale anstelle vonsrc— Überprüfen Sie die Seite, bevor Sie dem Markup vertrauen. srcsetAttribute mehrere Auflösungen für responsive Bilder bereithalten. Die Version mit der höchsten Qualität ist oft nicht die, diesrcverweist auf; analysierensrcsetum sich das Größte zu sichern.- Mit JavaScript gerenderte Galerien wird nicht in … erscheinen
requestsüberhaupt keine Ausgabe. Wechseln Sie zu Playwright, warten Sie, bis die Galerie gerendert ist, und extrahieren Sie dann die Daten aus dem DOM. - Signierte CDN-URLs verfallen – wenn Sie URLs in einem Durchgang sammeln und sie später herunterladen, müssen Sie mit 403-Fehlern rechnen. Laden Sie die Dateien herunter, sobald Sie sie entdecken.
- Hotlink-Schutz lehnt Anträge ohne entsprechende Berechtigung ab
RefererHeader. Übergeben Sie die URL der Quellseite alsRefererund die meisten davon verschwinden wieder.
Für das Scraping mit Playwright:
Python
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto("https://example.com/gallery")
page.evaluate("window.scrollTo(0, document.body.scrollHeight)")
page.wait_for_timeout(2000)
image_urls = page.eval_on_selector_all(
"img",
"elements => elements.map(el => el.src)"
)
browser.close()
Damit wird das „Scroll-to-Load-More“-Muster berücksichtigt, das bei den meisten modernen Bildergalerien zu Fehlern bei einfachen Webcrawlern führt.
Stufe 4: Datenerhebung im Produktionsmaßstab
Sobald Sie die Marke von einigen Tausend Bildern pro Durchlauf überschreiten oder Sammelaufträge kontinuierlich ausführen (die häufigsten Anwendungsfälle: Aufbau eines Bilddatensatzes für das ML-Training, Überwachung der visuellen Inhalte von Wettbewerbern oder die Kuratierung von Content-Feeds in großem Maßstab), verlagern sich die Engpässe.
Das Skript ist nicht mehr das Problem. Die Probleme sind:
Ratenbegrenzung und IP-Sperren. Jede nennenswerte Website blockiert eine einzelne IP-Adresse, die mehr als ein paar Mal pro Minute auf die Seite zugreift. Die Lösung besteht in der rotierenden Nutzung von Residential-Proxys – also IP-Adressen, die echten Privathaushalten zugewiesen sind und sich nicht vom normalen Nutzerverkehr unterscheiden lassen. Rechenzentrums-Proxys funktionieren hierfür nicht; große Bildhosting-Dienste und E-Commerce-Plattformen kennzeichnen IP-Bereiche von Rechenzentren standardmäßig als verdächtig.
Inhalte mit geografischer Begrenzung. Bestimmte Bilder werden nur in bestimmten Regionen angezeigt (lizenzierte Sportbilder, regionale Produktfotos). Dies wird durch Proxy-Targeting auf Länderebene geregelt; bei wirklich lokalisierten Inhalten ist jedoch das Targeting auf Stadtebene entscheidend.
Speicherung und Deduplizierung. Ein Durchlauf, bei dem 100.000 Bilder mit einer Größe von jeweils 200 KB abgerufen werden, ergibt 20 GB. Wenn jedes Bild beim Herunterladen gehasht wird (ein einfaches hashlib.md5(content).hexdigest()) ermöglicht es Ihnen, Duplikate zu überspringen, ohne eine parallele Dateinamendatenbank führen zu müssen.
Logik für Wiederholungsversuche. Netzwerke fallen aus, CDNs drosseln die Bandbreite, Browser stürzen ab. Führen Sie bei jedem Download einen Wiederholungsversuch mit Backoff durch und protokollieren Sie Fehler, anstatt den Vorgang bei einem Fehler abzubrechen.
Parallelität. Verwendung aiohttp mit asyncio für Workloads mit hohem Download-Aufkommen. Ein einfaches sequentielles Skript, das 10.000 Bilder mit einer Dauer von 200 ms pro Anfrage herunterlädt, benötigt 33 Minuten; die asynchrone Version benötigt weniger als eine Minute (vorausgesetzt, die Quelle kann dies bewältigen – bringen Sie bitte nicht den Server eines anderen zum Absturz).
Bei Projekten dieser Kategorie ist die Proxy-Infrastruktur wichtiger als das Scraping-Skript. Das Skript umfasst 100 Zeilen, die Sie an einem Nachmittag schreiben können. Zuverlässige, wechselnde Privat-IP-Adressen sind der entscheidende Faktor, der darüber entscheidet, ob der Auftrag vollständig ausgeführt wird oder bei 30 % ins Stocken gerät, weil die IP-Adresse gesperrt wurde.
IPBurger passt hier gut ins Bild – rotierende Wohn-Proxys, Targeting auf Länderebene, „Sticky Sessions“, wenn Sie diese benötigen – und der allgemeine Grundsatz gilt unabhängig vom Anbieter: Auf dieser Ebene ist die Proxy-Ebene die tragende Säule.
Der Teil, den die meisten Ratgeber auslassen: Rechtliche Aspekte und Ethik
Das „Image Scraping“ ist einer der rechtlich eher unklaren Bereiche des Web-Scrapings, und zwar aus einigen spezifischen Gründen, die sich in den letzten zwei Jahren noch verstärkt haben:
Bilder unterliegen standardmäßig dem Urheberrecht. Im Gegensatz zu Textauszügen, bei denen der Spielraum für die faire Nutzung größer ist, stellt die Vervielfältigung von Bildern in der Regel eine urheberrechtliche Angelegenheit dar. Die Tatsache, dass ein Bild im Internet öffentlich zugänglich ist, gewährt keine Lizenz zu dessen Vervielfältigung und Weiterverbreitung. Für die kommerzielle Nutzung stellt dies ein echtes Risiko dar; im Hinblick auf Trainingsdatensätze für maschinelles Lernen handelt es sich um einen aktiven und noch nicht abgeregelten Rechtsbereich.
In den Nutzungsbedingungen wird das Scraping oft ausdrücklich untersagt. Ein Verstoß gegen die Nutzungsbedingungen ist in der Regel keine Straftat, kann jedoch zivilrechtliche Folgen haben und dazu führen, dass Ihre Konten und IP-Adressen gesperrt werden. Lesen Sie die Nutzungsbedingungen jeder Website, von der Sie in großem Umfang Daten scrapen.
Das EU-KI-Gesetz und ähnliche Vorschriften sehen zunehmend vor, dass die Quellen der Trainingsdaten für KI-Modelle offengelegt werden müssen. Wenn Sie Daten für maschinelles Lernen sammeln, dokumentieren Sie bitte, woher die Daten stammen und wie sie erhoben wurden.
Bestimmte Inhalte sind unabhängig von ihrer technischen Zugänglichkeit tabu. Bilder, auf denen identifizierbare Privatpersonen, insbesondere Minderjährige, zu sehen sind, sind strengstens untersagt – selbst wenn die Seite öffentlich zugänglich ist. Es gelten die Datenschutzbestimmungen (DSGVO, CCPA).
Die praktische Faustregel lautet: Wenn es Ihnen peinlich wäre, Ihre Scraping-Aktivitäten einem Richter oder dem Anwalt der Website zu erklären, sollten Sie davon Abstand nehmen. Wenn Sie dies klar und deutlich erklären können – „Wir sammeln öffentlich zugängliche Produktbilder zum Preisvergleich, halten uns dabei an die robots.txt-Datei, begrenzen die Anzahl unserer Anfragen und geben die Quellen an“ –, ist wahrscheinlich alles in Ordnung.
Ein sinnvoller Standard-Arbeitsablauf
Wenn Sie heute ein Bild-Scraping-Projekt starten und sich nicht sicher sind, welche Tarifstufe Sie benötigen, ist dies der Weg, der sich skalieren lässt:
- Überprüfen Sie die Seite in den Entwicklertools des Browsers. Finden Sie heraus, wo sich die Bild-URLs tatsächlich befinden. Statisch
src?srcset?data-src? Hintergrundbilder in CSS? Diese 10-minütige Recherche spart Ihnen später viele Stunden Arbeit. - Versuchen Sie es
wgetoder ein kleinesrequests + BeautifulSoupZuerst das Skript. Wenn die Bilder einwandfrei angezeigt werden, sind Sie fertig. - Sollte die Darstellung durch JavaScript gestört werden, wechseln Sie zu Playwright. Headless-Browser sind zwar langsamer, können jedoch alles verarbeiten, was ein echter Nutzer sehen kann.
- Sollten Sie 403- oder 429-Fehlermeldungen erhalten, fügen Sie eine Ebene mit privaten Proxys hinzu. Versuchen Sie nicht, das Anti-Bot-System durch endloses Anpassen der Header zu überlisten; sobald eine Website Ihre IP-Adresse identifiziert hat, ist dies endgültig der Fall.
- Fügen Sie Deduplizierung, Wiederholungslogik und Parallelität erst dann hinzu, wenn das Datenvolumen die damit verbundene Komplexität rechtfertigt. Bauen Sie die Produktionspipeline nicht bereits am ersten Tag auf.
Die meisten Bild-Scraping-Projekte scheitern mitten in Schritt 4 – nicht, weil die Skripterstellung schwierig ist, sondern weil der Betreiber versucht, IP-Adressen von Rechenzentren einzusetzen, wo eigentlich Privatadressen erforderlich sind, drei Tage damit verschwendet und schließlich aufgibt. Wählen Sie von Anfang an die richtige Infrastruktur, dann ist der Rest ein Kinderspiel.
Die Stärke Ihres Unternehmens hängt direkt von der Verfügbarkeit Ihrer Proxys ab. Wechseln Sie zu statischen ISP-Proxys in Unternehmensqualität, um dedizierte Übertragungsraten und unerschütterliche Zuverlässigkeit zu gewährleisten. ODER setzen Sie rotierende Residential-Proxys ein und erzielen Sie eine Erfolgsquote beim Scraping von 99,9 %.
