Zurück zum Blog
Programmierung
EinsteigerFürData EngineersPython Engineers
7 min

Web Scraping vs. Web Crawling: Der echte Unterschied (2026)

Alle verwechseln Web Scraping und Web Crawling. Hier der echte Unterschied in einer Minute, wie beide in eine Pipeline passen, warum beide in Produktion brechen und welche Tools sie im Maßstab am Laufen halten.

web-scrapingweb-crawlingpythonbright-databrowser-automationdata-engineering
Inhalt

Wenn du je danach gesucht hast, wie man Daten aus dem Web sammelt, hast du die beiden Begriffe gesehen, als wären sie dasselbe: Web Scraping und Web Crawling. Sind sie nicht. Sie zu verwechseln ist der häufigste Grund, warum Datenprojekte mit dem falschen Werkzeug starten.

Hier die kurze Version — und dann die praktische.

  • Ein Crawler entdeckt und folgt Links. Er beantwortet „welche Seiten existieren und wohin gehe ich als Nächstes?“
  • Ein Scraper extrahiert Daten aus einer Seite. Er beantwortet „welche Informationen nehme ich von dieser Seite mit?“

Sie sind keine Konkurrenten. In fast jedem echten Projekt sind sie zwei Stufen derselben Pipeline: crawlen, um die Seiten zu finden, scrapen, um die Daten zu ziehen.

Web Scraping versus Web Crawling: ein Crawler entdeckt URLs, ein Scraper extrahiert die Daten daraus.

Die 30-Sekunden-Antwort

Die 30-Sekunden-Antwort
Web Crawling Web Scraping
Aufgabe URLs entdecken und verfolgen Daten aus einer Seite extrahieren
Beantwortete Frage Wohin gehen? Was mitnehmen?
Ergebnis Eine Liste von Links / eine Sitemap Strukturierte Daten (Preise, Bewertungen, Titel)
Klassisches Beispiel Googlebot kartiert das Web Alle Produktpreise einer Kategorie ziehen
Reichweite Breit — viele Seiten Tief — Felder auf einer Seite

Wenn du dir einen Satz merkst: Crawling ist Navigation, Scraping ist Extraktion. Eine Suchmaschine ist überwiegend ein Crawler. Ein Preismonitor ist überwiegend ein Scraper. Ein „sammle jedes Produkt in diesem Shop“-Job ist beides.

Wie Web Crawling funktioniert

Ein Crawler startet von einer oder mehreren Seed-URLs und breitet sich nach außen aus:

  1. Die Seed-Seite abrufen.
  2. Sie parsen und jeden Link extrahieren.
  3. Neue Links in eine Warteschlange legen (die URL-Frontier).
  4. Wiederholen — jede eingereihte URL besuchen, robots.txt respektieren und bereits gesehene Seiten deduplizieren.

Ein minimaler Crawler in Python sieht so aus:

import requests
from urllib.parse import urljoin, urlparse
from bs4 import BeautifulSoup
def crawl(seed, max_pages=50):
seen, queue, base = set(), [seed], urlparse(seed).netloc
while queue and len(seen) < max_pages:
url = queue.pop(0)
if url in seen:
continue
seen.add(url)
try:
html = requests.get(url, timeout=10).text
except requests.RequestException:
continue
soup = BeautifulSoup(html, "html.parser")
for a in soup.select("a[href]"):
link = urljoin(url, a["href"])
# auf derselben Website bleiben, Besuchtes überspringen
if urlparse(link).netloc == base and link not in seen:
queue.append(link)
return seen
urls = crawl("https://example.com")
print(f"{len(urls)} URLs entdeckt")

Das ist die ganze Idee des Crawlings: breitensuche-basierte Link-Entdeckung. Das Ergebnis ist eine Menge von URLs — noch keine Daten.

Wie Web Scraping funktioniert

Ein Scraper nimmt eine einzelne Seite und zieht genau die Felder heraus, die dich interessieren. Wie du die URL gefunden hast, ist ihm egal — das war die Aufgabe des Crawlers.

import requests
from bs4 import BeautifulSoup
def scrape_product(url):
html = requests.get(url, timeout=10).text
soup = BeautifulSoup(html, "html.parser")
return {
"title": soup.select_one("h1").get_text(strip=True),
"price": soup.select_one(".price").get_text(strip=True),
"rating": soup.select_one(".rating").get_text(strip=True),
}
data = scrape_product("https://example.com/product/123")
print(data) # {"title": "...", "price": "...", "rating": "..."}

Crawling gab uns das Wo. Scraping gibt uns das Was. Verkette beide, und du hast eine Pipeline.

Crawling + Scraping: Eine echte Pipeline

So passen sie in der Praxis zusammen — sagen wir, du willst jedes Produkt eines Shops:

Eine Pipeline, zwei Stufen: Ein Crawler entdeckt Produkt-URLs von einer Seed-Seite, dann extrahiert ein Scraper aus jeder URL die Felder in einen sauberen, strukturierten Datensatz.

Der Crawler zählt die URLs auf; der Scraper macht aus jeder eine Datenzeile. Auf dem Papier einfach — und dann lässt du es gegen eine echte Website laufen, und es bricht.

Warum beide in Produktion brechen

Der Code oben funktioniert auf example.com. Auf einem echten, kommerziellen Ziel nicht, denn im großen Maßstab siehst du überhaupt nicht wie ein menschlicher Besucher aus:

  • Du sendest hunderte oder tausende Anfragen aus einem schmalen Satz von IPs.
  • Viele Seiten rendern ihre Inhalte per JavaScript, sodass requests nur eine leere Hülle bekommt.
  • Websites bekämpfen Bots mit Rate-Limits, CAPTCHAs und Browser-Fingerprinting.
  • Geo-eingeschränkte Inhalte ändern sich je nachdem, woher die Anfrage kommt.

Das ist die Wand, gegen die jedes Scraping- und Crawling-Projekt läuft. Sie selbst zu lösen bedeutet, Proxy-Rotation, Headless-Browser, CAPTCHA-Handling und Retry-Logik zu bauen und zu warten — ein ganzes Subsystem, das mit deinem eigentlichen Datenziel nichts zu tun hat.

Genau diese Schicht ist Bright Data gebaut zu ersetzen.

Den Crawl und einfache Scrapes entsperren

Für den häufigen Fall — eine URL senden, sauberes, gerendertes HTML zurückbekommen — übernimmt die Bright Data Web Unlocker API Proxy-Rotation, Anti-Bot-Umgehung, CAPTCHA-Lösung und JavaScript-Rendering hinter einer einzigen Anfrage. Dein Crawler und Scraper kümmern sich nicht mehr um Blocks:

import requests
API_URL = "https://api.brightdata.com/request"
HEADERS = {"Authorization": "Bearer YOUR_API_TOKEN"}
def fetch(url):
payload = {"zone": "web_unlocker", "url": url, "format": "raw"}
resp = requests.post(API_URL, json=payload, headers=HEADERS, timeout=60)
return resp.text # vollständig gerendertes, entsperrtes HTML
html = fetch("https://example.com/product/123")
# direkt an BeautifulSoup wie zuvor übergeben

Die Komplexität wandert aus deinem Code in die Zugriffsschicht — genau dorthin, wo sie hingehört. Die Web Unlocker API macht aus „eine URL rein, gerendertes HTML raus“ etwas, das einfach funktioniert, im großen Maßstab.

Seiten scrapen, die einen echten Browser brauchen

Manche Ziele brauchen mehr als eine gerenderte Seite — Klicks, Logins, Scrollen, mehrstufige Navigation. Dafür ist ein vollwertiger Browser das richtige Werkzeug. Die Bright Data Scraping Browser API gibt dir ein verwaltetes, entferntes Chrome, an das sich Playwright oder Puppeteer über CDP anhängen, mit eingebauten Proxys und Unblocking — so bekommst du Browser-Grade-Scraping, ohne selbst eine Flotte von Headless-Browsern zu betreiben:

from playwright.sync_api import sync_playwright
CDP_URL = "wss://YOUR_ENDPOINT@brd.superproxy.io:9222"
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(CDP_URL)
page = browser.new_page()
page.goto("https://example.com/product/123")
page.wait_for_selector(".price")
print(page.inner_text(".price"))
browser.close()

Die Faustregel: Greif zur Scraping Browser API, wenn der Workflow Interaktion braucht (Klicks, Formulare, Infinite Scroll), und zur Web Unlocker API, wenn du nur das gerenderte HTML einer URL brauchst.

Das ist die Frage, die alle stellen — also seien wir klar und ehrlich.

Öffentlich verfügbare Daten zu scrapen ist in vielen Rechtsordnungen weitgehend zulässig, und Gerichte — allen voran die hiQ v. LinkedIn-Reihe in den USA — haben den Zugriff auf öffentliche Daten wiederholt vom unbefugten Zugriff auf geschützte Systeme unterschieden. Aber „öffentliche Daten sind generell okay“ ist kein Freibrief. Die Rechtslage hängt davon ab, was du sammelst und wie:

  • Nutzungsbedingungen respektieren, wo sie für deinen Zugriff gelten.
  • Keine personenbezogenen Daten ohne rechtliche Grundlage verarbeiten (DSGVO/CCPA zählen).
  • Keine Authentifizierung umgehen — Scraping hinter einem Login ist eine andere rechtliche Kategorie.
  • Keine urheberrechtlich geschützten Inhalte zur Weiterveröffentlichung scrapen.
  • Anfrageraten vernünftig halten, damit du den Zieldienst nicht beeinträchtigst.

Crawling hat dieselben Grenzen. robots.txt ist eine zu respektierende Norm, kein Gesetz — aber sie zu ignorieren und dabei eine Website zu überfluten ist genau der Weg, auf die falsche Seite von Ethik und Rechtsstreit zu geraten. Für alles Kommerzielle: Beratung für den konkreten Anwendungsfall einholen.

Beste Tools für jede Aufgabe (2026)

Beste Tools für jede Aufgabe (2026)
Bedarf Greif zu
Eine Website crawlen, um URLs zu entdecken Scrapy oder ein eigener BFS-Crawler
Felder aus statischem HTML extrahieren BeautifulSoup, lxml, Cheerio
Aus JS-lastigen Seiten extrahieren Playwright / Puppeteer
Entsperrtes HTML von jeder URL holen Bright Data Web Unlocker API
Browser-Grade-Scraping im Maßstab Bright Data Scraping Browser API

Die Open-Source-Tools geben dir die Logik; die Zugriffsschicht gibt dir die Zuverlässigkeit. In Produktion willst du fast immer beides.

Das Fazit

Web Crawling und Web Scraping sind nicht dasselbe, und sie sind keine Rivalen:

  • Crawling entdeckt, wo die Daten sind.
  • Scraping extrahiert, was die Daten sind.
  • Zusammen bilden sie eine Pipeline: die URLs finden, dann die Daten ziehen.

Die Logik ist einfach. Der schwere Teil — der, der ein Wochenend-Skript von einem Produktionssystem trennt — ist, im großen Maßstab entsperrt zu bleiben. Erledige die Entdeckung mit einem Crawler, die Extraktion mit einem Scraper und die Block-Wand mit einer Unblocking-Schicht wie der Web Unlocker API oder der Scraping Browser API — und das Ganze fühlt sich nicht mehr wie Magie an, sondern wie Installation, die du tatsächlich kontrollierst.

Häufig gestellte Fragen

Ist Web Scraping dasselbe wie Web Crawling?

Nein. Crawling ist der Entdeckungs-Schritt — es folgt Links, um eine Liste von URLs aufzubauen, so wie eine Suchmaschine das Web kartiert. Scraping ist der Extraktions-Schritt — es öffnet eine Seite und holt konkrete Daten wie Preise, Bewertungen oder Titel heraus. Die meisten echten Projekte crawlen, um Seiten zu finden, und scrapen dann die Daten daraus.

Brauche ich sowohl Crawler als auch Scraper?

Oft ja. Wenn du die exakten URLs bereits hast, brauchst du nur einen Scraper. Musst du erst Seiten über eine Website hinweg entdecken — etwa jedes Produkt einer Kategorie — brauchst du einen Crawler, der die URLs aufzählt, und einen Scraper, der die Daten extrahiert. Beide verketten sich zu einer Pipeline.

Ist Web Scraping 2026 legal?

Öffentlich verfügbare Daten zu scrapen ist in vielen Rechtsordnungen weitgehend zulässig, und Gerichte haben öffentliche Daten wiederholt vom unbefugten Zugriff auf geschützte Systeme unterschieden. Aber die Rechtslage hängt davon ab, was du sammelst und wie: Nutzungsbedingungen respektieren, keine personenbezogenen oder urheberrechtlich geschützten Daten ohne Recht dazu, keine Authentifizierung umgehen und die Anfragerate vernünftig halten. Im Zweifel Rechtsberatung für den konkreten Fall einholen.

Warum werden Scraper und Crawler blockiert?

Im großen Maßstab sendest du weit mehr Anfragen als ein Mensch, aus einem schmalen IP-Bereich, oft ohne echten Browser-Fingerprint. Websites erkennen dieses Muster mit Rate-Limits, Bot-Fingerprinting und CAPTCHAs. Die Lösung: rotierende Residential-IPs, JavaScript in einem echten Browser rendern und Challenges bewältigen — genau dafür hilft eine Unblocking-Schicht oder ein verwalteter Scraping-Browser.

War dieser Artikel hilfreich?

ENDE