Das Internet ist heute eine echte Goldmine für Daten – so sehr, dass wir 2024 die unfassbare Grenze von an digitalen Informationen geknackt haben. Und das Krasse: Über 90 % aller Daten weltweit sind allein in den letzten zwei Jahren entstanden. Für Unternehmen heißt das: Die nächste große Erkenntnis, ein wertvoller Lead oder ein echter Wettbewerbsvorteil wartet irgendwo online – du musst ihn nur finden.
Genau hier kommt der Web-Scraper ins Spiel. Egal ob Vertrieb, E-Commerce oder Marktforschung: Die Fähigkeit, Website-Daten automatisiert zu sammeln und zu strukturieren, ist ein echter Gamechanger. Und falls du noch nie programmiert hast – keine Panik: Mit Python ist Web Scraping wirklich easy. In dieser Schritt-für-Schritt-Anleitung zeige ich dir alles – vom Setup bis zur Datenbereinigung. Und wenn’s noch schneller gehen soll, stelle ich dir mit auch eine komplett codefreie Lösung vor.
Was ist Python Web Scraping?
Kurz gesagt: Web-Scraper sind Tools, mit denen du Daten automatisiert von Webseiten ausliest. Stell dir vor, du willst Produktpreise aus einem Online-Shop sammeln, eine Kontaktliste aus einem Branchenverzeichnis bauen oder die News der Konkurrenz im Blick behalten. Statt alles mühsam per Copy & Paste zu übertragen (dafür hat wirklich niemand Zeit), schreibst du ein Skript, das diese Arbeit für dich übernimmt.
Python Web Scraping heißt, dass du dafür die Programmiersprache Python nutzt. Dank der leicht verständlichen Syntax und mächtigen Bibliotheken ist Python das perfekte Werkzeug – auch für Einsteiger. Du kannst Webseiten abrufen, Inhalte analysieren und strukturierte Daten in wenigen Minuten speichern.
Typische Anwendungsfälle für Web-Scraper im Business:
- Leadgenerierung: Listen mit potenziellen Kunden aus Verzeichnissen oder Bewertungsportalen erstellen.
- Preisbeobachtung: Preise und Verfügbarkeiten von Wettbewerbern überwachen.
- Marktforschung: Nachrichten, Bewertungen oder Social-Media-Erwähnungen sammeln.
- Betriebsprozesse: Lieferantendaten, Stellenanzeigen oder Immobilienangebote erfassen.
Kurz gesagt: Wenn die Daten online sind, hilft dir Python, sie schnell und effizient zu extrahieren.
Warum ist Python die beste Wahl fürs Web Scraping?
Ich habe schon viele Programmiersprachen fürs Scraping ausprobiert (und dabei so manche „Warum klappt das nicht?!“-Momente erlebt). Aber Python überzeugt – und das aus gutem Grund:
- Einsteigerfreundlich: Die Syntax ist klar und verständlich, auch für Nicht-Programmierer.
- Riesiges Ökosystem: Bibliotheken wie , und machen das Abrufen, Auslesen und Speichern von Daten zum Kinderspiel.
- Starke Community: Es gibt unzählige Tutorials, Foren und Codebeispiele für jedes Problem.
- Skalierbarkeit: Python eignet sich für kleine Einzelskripte genauso wie für große, wiederkehrende Scraping-Projekte.
Im Vergleich zu JavaScript, C++ oder R ist Python einfach zugänglicher und ideal für schnelles Prototyping und Datenanalyse (). Deshalb ist Python sowohl bei Einsteigern als auch in Unternehmen die erste Wahl.
Los geht’s: Python-Umgebung fürs Scraping einrichten
Bevor du loslegst, brauchst du Python und ein paar wichtige Bibliotheken. So startest du – auch ohne Vorkenntnisse:
-
Python installieren:
- Lade die aktuelle Version von herunter.
- Unter Windows beim Installieren „Add Python to PATH“ auswählen.
- Auf dem Mac kannst du mit
brew install python3nutzen. - Unter Linux:
sudo apt install python3 python3-pip.
-
pip (Paketmanager) installieren:
- Bei den meisten Python-Installationen ist pip schon dabei. Prüfe mit
pip --version. - Falls nicht, installiere es nachträglich mit
python -m ensurepip --upgrade.
- Bei den meisten Python-Installationen ist pip schon dabei. Prüfe mit
-
Virtuelle Umgebung einrichten (empfohlen):
- Im Projektordner:
python -m venv env - Aktivieren:
- Windows:
.\env\Scripts\activate - Mac/Linux:
source env/bin/activate
- Windows:
- Im Projektordner:
-
Benötigte Bibliotheken installieren:
- Mit aktivierter Umgebung:
1pip install requests beautifulsoup4 pandas scrapy - Für dynamische Seiten ggf. auch
seleniuminstallieren.
- Mit aktivierter Umgebung:
-
Editor wählen:
- Für Einsteiger sind , oder super geeignet.
Tipps bei Problemen:
- Wird
pipnicht erkannt, versuchepython -m pip install .... - Bei Berechtigungsfehlern: Terminal als Administrator starten oder
sudoverwenden. - Unter Windows nach der Installation das Terminal neu starten.
Website analysieren, bevor du scrapest
Bevor du mit dem Coden loslegst, solltest du die Struktur der Zielseite verstehen. So gehst du vor:
-
Entwicklertools öffnen:
- In Chrome: Rechtsklick auf ein Element → „Untersuchen“ oder
F12drücken. - Im Tab „Elements“ siehst du den HTML-Aufbau.
- In Chrome: Rechtsklick auf ein Element → „Untersuchen“ oder
-
Zieldaten finden:
- Mit dem „Element auswählen“-Tool (Mauszeiger-Symbol) auf das gewünschte Element klicken (z. B. Produkttitel oder Preis).
- Das zugehörige HTML wird hervorgehoben.
-
Muster erkennen:
- Suche nach eindeutigen Tags, Klassen oder IDs, z. B.:
<h2 class="product-title">Laptop XYZ</h2>. - Prüfe, ob die Daten in Listen (
<ul>,<div class="item">etc.) oder Tabellen stehen.
- Suche nach eindeutigen Tags, Klassen oder IDs, z. B.:
-
Auf Paginierung achten:
- Gibt es „Weiter“-Buttons oder Seitenzahlen im HTML? Bei URLs wie
?page=2kannst du diese in deinem Skript durchlaufen.
- Gibt es „Weiter“-Buttons oder Seitenzahlen im HTML? Bei URLs wie
-
Ist der Inhalt dynamisch?
- Fehlen die Daten im Seitenquelltext (
Ctrl+U), werden sie vermutlich per JavaScript nachgeladen. Dann brauchst du ggf. Selenium oder suchst nach einer API.
- Fehlen die Daten im Seitenquelltext (
Eine anschauliche Anleitung findest du im .
Mit Requests Webseiten-Inhalte abrufen
Die -Bibliothek ist das Standardwerkzeug, um Webseiten in Python herunterzuladen. Ein einfaches Beispiel:
1import requests
2url = "https://www.bbc.com/news"
3headers = {"User-Agent": "Mozilla/5.0"}
4response = requests.get(url, headers=headers)
5response.raise_for_status() # Fehler bei schlechten Antworten
6html = response.text
Tipps:
- Immer einen realistischen
User-Agentsetzen, um nicht blockiert zu werden (). - Prüfe
response.status_code(200 = OK, 404 = nicht gefunden, 403 = verboten, 429 = zu viele Anfragen).
HTML mit BeautifulSoup parsen: Die gewünschten Daten extrahieren
Jetzt hast du das HTML – Zeit, die relevanten Infos herauszufiltern. macht das super einfach:
1from bs4 import BeautifulSoup
2soup = BeautifulSoup(html, "html.parser")
3titles = [h.get_text(strip=True) for h in soup.select("h3")]
Typische Aufgaben:
- Text extrahieren:
element.get_text(strip=True) - Links sammeln:
[a['href'] for a in soup.select('a')] - Nach Klasse filtern:
soup.find_all('span', class_='price') - Bilder extrahieren:
[img['src'] for img in soup.select('img')] - Tabellen verarbeiten: Mit
soup.select('table')und Zeilen/Spalten durchgehen.
Tipps bei unübersichtlichem HTML:
- Mit
soup.select_one()das erste passende Element holen. - Bei fehlenden Feldern auf
Noneprüfen, bevor du Attribute abfragst. - Bei inkonsistentem Layout ggf. eigene Logik oder reguläre Ausdrücke nutzen.
Scrapy Framework: Effizientes und skalierbares Web Scraping
Wenn dein Scraping-Projekt größer wird (z. B. hunderte oder tausende Seiten), ist die richtige Wahl. Scrapy ist ein komplettes Framework zum Crawlen von Webseiten, Verfolgen von Links und Exportieren von Daten.
Vorteile von Scrapy:
- Schnelligkeit: Scrapy lädt viele Seiten parallel (asynchron).
- Viele Features: Automatische Wiederholungen, Caching, Export in CSV/JSON.
- Skalierbarkeit: Perfekt für große oder regelmäßig laufende Projekte.
So funktioniert Scrapy:
- Installation:
pip install scrapy - Projekt anlegen:
scrapy startproject myproject - Spider-Klasse mit
start_urlsundparse-Methode definieren. - Mit
yieldLinks folgen oder Daten extrahieren. - Ausführen:
scrapy crawl spidername -o output.csv
Einen schnellen Einstieg findest du in der .
No-Code-Alternative: Thunderbits KI-Web-Scraper für sofortige Ergebnisse
Nicht jeder hat Lust, sich mit Code, Abhängigkeiten oder Fehlersuche herumzuschlagen. Deshalb gibt es : Ein KI-Web-Scraper als Chrome-Erweiterung, speziell für Business-Anwender, die in wenigen Klicks Ergebnisse wollen.
So funktioniert Thunderbit:
- KI-Feldvorschläge: Mit „AI Suggest Fields“ liest Thunderbit die Seite und schlägt passende Spalten vor.
- 2-Klick-Scraping: Mit „Scrape“ übernimmt Thunderbit alles Weitere – inklusive Paginierung, Unterseiten und unübersichtlichen Layouts.
- Unterseiten-Scraping: Mehr Details nötig? Thunderbit besucht automatisch Unterseiten (z. B. Produktdetails oder Profile) und ergänzt die Tabelle.
- Sofort-Vorlagen: Für bekannte Seiten (Amazon, Zillow, Instagram, Shopify) gibt es fertige Templates für den 1-Klick-Export.
- Kostenloser Datenexport: Exportiere nach Excel, Google Sheets, Airtable, Notion, CSV oder JSON – ohne Bezahlschranke, ohne Aufwand.
Thunderbit vs. Python: Der schnelle Vergleich
| Funktion | Python (manuell) | Thunderbit (No-Code) |
|---|---|---|
| Einrichtungszeit | 30–60 Minuten | 2 Minuten |
| Programmierkenntnisse | Ja | Nein |
| Paginierung | Mit eigenem Code | Ja, automatisch |
| Unterseiten-Scraping | Manuelle Schleifen | 1 Klick |
| Datenexport | Code für CSV/Excel schreiben | 1-Klick zu Sheets/Excel/Notion |
| Wartung | Manuelle Updates bei Änderungen | KI passt sich automatisch an |
| Am besten geeignet für | Individuelle Logik, Integration | Schnelle Ergebnisse, No-Coder |
Mehr dazu findest du im .
Daten bereinigen und speichern: So werden deine Scraping-Ergebnisse nutzbar
Rohdaten aus dem Web sind selten sofort einsatzbereit. Mit kannst du sie easy bereinigen und speichern:
1import pandas as pd
2# Angenommen, du hast eine Liste von Dictionaries namens scraped_data
3df = pd.DataFrame(scraped_data)
4# Duplikate entfernen
5df = df.drop_duplicates()
6# Zeilen mit fehlenden Werten filtern
7df = df.dropna(subset=['title', 'price'])
8# Preis in float umwandeln (Währungszeichen und Kommas entfernen)
9df['price'] = df['price'].str.replace('$', '').str.replace(',', '').astype(float)
10# Als CSV speichern
11df.to_csv('results.csv', index=False)
Best Practices:
- Prüfe immer auf fehlende oder inkonsistente Daten.
- Formate vereinheitlichen (z. B. Datum, Preis).
- Daten als CSV speichern für einfachen Austausch, oder Excel/Google Sheets für Zusammenarbeit nutzen.
- Bei großen Datenmengen ggf. eine Datenbank (z. B. SQLite oder PostgreSQL) verwenden.
Schritt-für-Schritt-Anleitung: Python Web Scraping von Anfang bis Ende
Hier ein Praxisbeispiel: Wir scrapen Produkttitel und Preise von einer Beispiel-E-Commerce-Seite.
1. Website analysieren
Angenommen, du möchtest auslesen. Beim Untersuchen der Seite fällt auf:
- Buchtitel stehen in
<h3>-Tags innerhalb von<article class="product_pod">. - Preise findest du in
<p class="price_color">.
2. Seite abrufen
1import requests
2url = "http://books.toscrape.com/"
3headers = {"User-Agent": "Mozilla/5.0"}
4response = requests.get(url, headers=headers)
5response.raise_for_status()
6html = response.text
3. Daten parsen und extrahieren
1from bs4 import BeautifulSoup
2soup = BeautifulSoup(html, "html.parser")
3books = []
4for article in soup.select("article.product_pod"):
5 title = article.h3.a["title"]
6 price = article.select_one("p.price_color").get_text(strip=True)
7 books.append({"title": title, "price": price})
4. Daten bereinigen und speichern
1import pandas as pd
2df = pd.DataFrame(books)
3df['price'] = df['price'].str.replace('£', '').astype(float)
4df.to_csv('books.csv', index=False)
5print(f"{len(df)} Bücher in books.csv gespeichert")
5. Tipps zur Fehlersuche
- Ist
booksleer, prüfe deine CSS-Selektoren. - Bei Kodierungsfehlern öffne die CSV mit UTF-8.
- Für mehrere Seiten: Durchlaufe URLs wie
http://books.toscrape.com/catalogue/page-2.html.
Profi-Tipp: Für dynamische Seiten oder komplexere Abläufe nutze Selenium oder Scrapy – oder überlasse Thunderbit die Arbeit.
Fazit & wichtigste Erkenntnisse
Web Scraping mit Python eröffnet Unternehmen viele Möglichkeiten – von Leadgenerierung bis Marktanalyse. Das Wichtigste im Überblick:
- Python ist die Top-Wahl fürs Web Scraping dank einfacher Syntax und starker Bibliotheken.
- Requests und BeautifulSoup sind die Basis fürs Abrufen und Auslesen von HTML.
- Scrapy eignet sich für große, komplexe Scraping-Projekte.
- Thunderbit bietet eine codefreie, KI-gestützte Alternative für sofortige Ergebnisse – ideal für alle, die ohne Programmierung direkt an die Daten wollen.
- Datenbereinigung und -speicherung sind entscheidend, um aus Rohdaten verwertbare Erkenntnisse zu machen.
Wenn du tiefer einsteigen willst, probiere einen eigenen Web-Scraper auf einer Testseite – oder und sieh selbst, wie schnell du strukturierte Daten aus jeder Website bekommst. Weitere Tipps und Anleitungen findest du im .
Viel Erfolg beim Scrapen – und auf saubere, strukturierte und einsatzbereite Daten!
Häufige Fragen (FAQ)
1. Ist Web Scraping legal?
Web Scraping ist in der Regel erlaubt, wenn du öffentlich zugängliche Daten sammelst. Beachte aber immer die Nutzungsbedingungen, robots.txt und Datenschutzgesetze wie die DSGVO. Verzichte auf das Scrapen personenbezogener Daten ohne Einwilligung und umgehe keine Logins oder Sicherheitsmechanismen ().
2. Was ist der Unterschied zwischen Requests, BeautifulSoup und Scrapy?
- Requests lädt Webseiten herunter.
- BeautifulSoup liest und extrahiert Daten aus HTML.
- Scrapy ist ein komplettes Framework für das großflächige Crawlen und Extrahieren von Daten, inklusive Mehrseiten-Support und Export.
3. Was, wenn die Website Daten per JavaScript lädt?
Sind die Daten nicht im HTML, nutze oder Playwright, um einen Browser zu automatisieren, oder prüfe die Netzwerkanfragen auf zugängliche API-Endpunkte.
4. Wie vermeide ich Blockierungen beim Scraping?
Setze realistische Header (vor allem User-Agent), baue zufällige Pausen zwischen Anfragen ein und überlaste den Server nicht. Bei großem Umfang: IPs rotieren oder Proxies nutzen ().
5. Kann ich ohne Programmierung Daten scrapen?
Absolut. Mit kannst du jede Website in zwei Klicks per KI scrapen – ganz ohne Code. Einfach die Chrome-Erweiterung installieren, Wunschdaten beschreiben und sofort exportieren.
Weitere Anleitungen und Tipps findest du im .
Mehr erfahren