Schritt-für-Schritt-Anleitung: Web Scraping mit Python und Selenium

Zuletzt aktualisiert am May 6, 2026

Das Web ist nicht mehr das, was es einmal war. Heute ist fast jede Website, die du besuchst, von JavaScript angetrieben und lädt Inhalte dynamisch nach – denk an endloses Scrollen, Pop-ups und Dashboards, die ihre Geheimnisse erst nach ein oder zwei Klicks preisgeben. Tatsächlich nutzen inzwischen satte , was bedeutet, dass die alten Scraping-Tools, die nur statisches HTML lesen, jede Menge wertvoller Daten verpassen. Wenn du schon einmal versucht hast, Produktpreise von einer modernen E-Commerce-Seite zu scrapen oder Immobilienanzeigen aus einer interaktiven Karte zu ziehen, kennst du die Frustration: Die gewünschten Daten stehen einfach nicht im Quellcode.

Genau hier kommt Scraping mit Selenium ins Spiel. Ich habe jahrelang Automatisierungstools entwickelt und dabei, ja, auch mehr als meinen fairen Anteil an Websites gescrapt – deshalb kann ich dir sagen: Selenium zu beherrschen ist eine Superkraft für alle, die aktuelle, dynamische Daten brauchen. In diesem praxisnahen Selenium-Web-Scraping-Tutorial führe ich dich durch die wichtigsten Schritte – von der Einrichtung bis zur Automatisierung – und zeige dir, wie du Selenium mit kombinierst, um strukturierte, direkt exportierbare Daten zu erhalten. Egal, ob du Business-Analyst, Vertriebsprofi oder einfach neugieriger Python-Nutzer bist: Du nimmst praktische Fähigkeiten mit und vielleicht auch ein paar Lacher (denn mal ehrlich: XPath-Selektoren zu debuggen bildet den Charakter).

Was ist Selenium und warum sollte man es fürs Web-Scraping nutzen?

selenium-dynamic-vs-static-web-scraping.png Fangen wir mit den Grundlagen an. ist ein Open-Source-Framework, mit dem du einen echten Webbrowser – etwa Chrome oder Firefox – per Code steuern kannst. Stell es dir wie einen Roboter vor, der Seiten öffnen, Buttons klicken, Formulare ausfüllen, scrollen und sogar JavaScript ausführen kann, genau wie ein menschlicher Nutzer. Das ist wichtig, weil die meisten modernen Websites ihre Daten nicht direkt anzeigen. Stattdessen laden sie Inhalte dynamisch nach, oft erst nachdem du mit der Seite interagiert hast.

Warum ist das fürs Scraping relevant? Klassische Tools wie BeautifulSoup oder Scrapy sind großartig für statisches HTML, können aber nichts „sehen“, was erst nach dem ersten Laden per JavaScript eingeblendet wird. Selenium hingegen kann in Echtzeit mit der Seite interagieren und eignet sich deshalb perfekt für:

  • Produktlisten zu scrapen, die erst nach Klick auf „Mehr laden“ erscheinen
  • Preise oder Bewertungen zu erfassen, die sich dynamisch aktualisieren
  • Login-Formulare, Pop-ups oder endloses Scrollen zu navigieren
  • Daten aus Dashboards, Karten oder anderen interaktiven Elementen zu extrahieren

Kurz gesagt: Selenium ist das richtige Tool, wenn du Daten scrapen willst, die erst nach dem Laden der Seite – oder nach einer Nutzeraktion – sichtbar werden.

Die wichtigsten Schritte für Python-Selenium-Web-Scraping

Scraping mit Selenium lässt sich auf drei zentrale Schritte herunterbrechen:

SchrittWas du tustWarum das wichtig ist
1. Umgebung einrichtenSelenium, WebDriver und Python-Bibliotheken installierenWerkzeuge bereitstellen und Einrichtungsprobleme vermeiden
2. Elemente findenDie gewünschten Daten über IDs, Klassen, XPath usw. lokalisierenDie richtigen Informationen finden, auch wenn sie von JavaScript verborgen werden
3. Daten extrahieren & speichernText, Links oder Tabellen auslesen und als CSV/Excel speichernRohdaten aus dem Web in etwas Nutzbares verwandeln

Gehen wir jeden Schritt mit praktischen Beispielen und Code durch, den du kopieren, anpassen und Freunden gegenüber stolz erwähnen kannst.

Schritt 1: Deine Python-Selenium-Umgebung einrichten

Zuerst brauchst du Selenium und einen Browser-Treiber (z. B. ChromeDriver für Chrome). Die gute Nachricht: Das ist heute einfacher denn je.

Selenium installieren

Öffne dein Terminal und führe aus:

1pip install selenium

Einen WebDriver holen

  • Chrome: Lade herunter (achte darauf, dass er zu deiner Chrome-Version passt).
  • Firefox: Lade herunter.

Profi-Tipp: Ab Selenium 4.6 kannst du Selenium Manager verwenden, um Treiber automatisch herunterzuladen. Vielleicht musst du also nicht einmal mehr mit PATH-Variablen herumfummeln ().

Dein erstes Selenium-Skript

Hier ist ein kurzes „Hello World“ für Selenium:

1from selenium import webdriver
2driver = webdriver.Chrome()  # Oder webdriver.Firefox()
3driver.get("https://example.com")
4print(driver.title)
5driver.quit()

Tipps zur Fehlerbehebung:

  • Wenn die Fehlermeldung „driver not found“ erscheint, prüfe deinen PATH oder nutze Selenium Manager.
  • Stelle sicher, dass Browser- und Treiberversion zusammenpassen.
  • Wenn du auf einem Headless-Server arbeitest (ohne GUI), sieh dir unten die Tipps zum Headless-Modus an.

Schritt 2: Web-Elemente für die Datenextraktion finden

Jetzt kommt der spannende Teil: Selenium sagen, welche Daten du brauchst. Websites bestehen aus Elementen – Divs, Spans, Tabellen und so weiter – und Selenium bietet dir mehrere Wege, sie zu finden.

Häufige Strategien zum Lokalisieren

  • By.ID: Ein Element mit einer eindeutigen ID finden
  • By.CLASS_NAME: Elemente nach CSS-Klasse finden
  • By.XPATH: XPath-Ausdrücke verwenden (sehr flexibel, aber manchmal fragil)
  • By.CSS_SELECTOR: CSS-Selektoren verwenden (ideal für komplexe Abfragen)

So kannst du sie verwenden:

1from selenium.webdriver.common.by import By
2# Nach ID finden
3price = driver.find_element(By.ID, "price").text
4# Nach XPath finden
5title = driver.find_element(By.XPATH, "//h1").text
6# Alle Produktbilder per CSS-Selektor finden
7images = driver.find_elements(By.CSS_SELECTOR, ".product img")
8for img in images:
9    print(img.get_attribute("src"))

Profi-Tipp: Verwende immer den einfachsten und stabilsten Selektor (ID > Klasse > CSS > XPath). Und wenn du eine Seite scrapen willst, die Daten verzögert lädt, nutze explizite Wartezeiten:

1from selenium.webdriver.support.ui import WebDriverWait
2from selenium.webdriver.support import expected_conditions as EC
3wait = WebDriverWait(driver, 10)
4price_elem = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".price")))

So stürzt dein Skript nicht ab, nur weil die Daten eine Sekunde später erscheinen.

Schritt 3: Daten extrahieren und speichern

Sobald du deine Elemente gefunden hast, ist es Zeit, die Daten zu holen und an einem nützlichen Ort zu speichern.

Nehmen wir an, du scrapst eine Produkttabelle:

1data = []
2rows = driver.find_elements(By.XPATH, "//table/tbody/tr")
3for row in rows:
4    cells = row.find_elements(By.TAG_NAME, "td")
5    data.append([cell.text for cell in cells])

Mit Pandas als CSV speichern

1import pandas as pd
2df = pd.DataFrame(data, columns=["Name", "Preis", "Bestand"])
3df.to_csv("products.csv", index=False)

Du kannst auch als Excel speichern (df.to_excel("products.xlsx")) oder die Daten sogar über die API in Google Sheets übertragen.

Vollständiges Beispiel: Produktnamen und Preise scrapen

1from selenium import webdriver
2from selenium.webdriver.common.by import By
3import pandas as pd
4driver = webdriver.Chrome()
5driver.get("https://example.com/products")
6data = []
7products = driver.find_elements(By.CLASS_NAME, "product-card")
8for p in products:
9    title = p.find_element(By.CLASS_NAME, "title").text
10    price = p.find_element(By.CLASS_NAME, "price").text
11    data.append([title, price])
12driver.quit()
13df = pd.DataFrame(data, columns=["Titel", "Preis"])
14df.to_csv("products.csv", index=False)

Selenium vs. BeautifulSoup und Scrapy: Was macht Selenium einzigartig?

selenium-vs-traditional-scrapers-comparison.png Lassen wir die Debatte entscheiden: Wann solltest du Selenium verwenden, und wann ist etwas wie BeautifulSoup oder Scrapy besser geeignet? Hier ist ein kurzer Vergleich:

ToolAm besten fürBeherrscht JavaScript?Geschwindigkeit & Ressourcenverbrauch
SeleniumDynamische/interaktive WebsitesJaLangsamer, braucht mehr Speicher
BeautifulSoupEinfaches statisches HTML-ScrapingNeinSehr schnell, leichtgewichtig
ScrapyCrawling statischer Seiten in großem UmfangEingeschränkt*Extrem schnell, asynchron, wenig RAM
ThunderbitNo-Code-Business-ScrapingJa (KI)Schnell für kleine/mittlere Aufgaben

*Scrapy kann mit Plugins einige dynamische Inhalte verarbeiten, ist dafür aber nicht seine Stärke ().

Wann Selenium verwenden:

  • Die Daten erscheinen erst nach Klick, Scrollen oder Login
  • Du musst mit Pop-ups, endlosem Scrollen oder dynamischen Dashboards interagieren
  • Statische Scraper reichen einfach nicht aus

Wann BeautifulSoup/Scrapy verwenden:

  • Die Daten stehen im ursprünglichen HTML
  • Du musst Tausende von Seiten schnell scrapen
  • Du willst möglichst wenig Ressourcen verbrauchen

Und wenn du ganz auf Code verzichten willst, kannst du mit dynamische Websites per KI scrapen – einfach auf „KI-Felder vorschlagen“ klicken und nach Google Sheets, Notion oder Airtable exportieren. (Mehr dazu weiter unten.)

Web-Scraping-Aufgaben mit Selenium und Python automatisieren

Mal ehrlich: Niemand möchte um 2 Uhr morgens aufstehen, um ein Scraping-Skript zu starten. Die gute Nachricht ist, dass du deine Selenium-Jobs mit den Scheduling-Tools von Python oder dem Scheduler deines Betriebssystems automatisieren kannst (etwa cron unter Linux/Mac oder die Aufgabenplanung unter Windows).

Mit der schedule-Bibliothek

1import schedule
2import time
3def job():
4    # Dein Scraping-Code hier
5    print("Scraping...")
6schedule.every().day.at("09:00").do(job)
7while True:
8    schedule.run_pending()
9    time.sleep(1)

Oder mit Cron (Linux/Mac)

Füge das zu deiner Crontab hinzu, um jede Stunde auszuführen:

10 * * * * python /path/to/your_script.py

Tipps für die Automatisierung:

  • Führe Selenium im Headless-Modus aus (siehe unten), um GUI-Pop-ups zu vermeiden.
  • Protokolliere Fehler und sende dir Benachrichtigungen, wenn etwas schiefgeht.
  • Schließe den Browser immer mit driver.quit(), um Ressourcen freizugeben.

Effizienz steigern: Tipps für schnelleres und zuverlässigeres Selenium-Scraping

Selenium ist mächtig, kann aber langsam und speicherintensiv sein, wenn man nicht aufpasst. So beschleunigst du alles und vermeidest typische Probleme:

1. Im Headless-Modus ausführen

Du musst nicht zusehen, wie Chrome hundertmal auf- und wieder zugeht. Der Headless-Modus lässt den Browser im Hintergrund laufen:

1from selenium.webdriver.chrome.options import Options
2opts = Options()
3opts.headless = True
4driver = webdriver.Chrome(options=opts)

2. Bilder und andere unnötige Inhalte blockieren

Warum Bilder laden, wenn du nur Text scrapst? Blockiere sie, um Seiten schneller zu laden:

1prefs = {"profile.managed_default_content_settings.images": 2}
2opts.add_experimental_option("prefs", prefs)

3. Effiziente Selektoren verwenden

  • Bevorzuge IDs oder einfache CSS-Selektoren statt komplexer XPaths.
  • Vermeide time.sleep() – nutze stattdessen explizite Wartezeiten (WebDriverWait).

4. Zufällige Verzögerungen einbauen

Füge zufällige Pausen ein, um menschliches Surfverhalten zu simulieren und Blockierungen zu vermeiden:

1import random, time
2time.sleep(random.uniform(1, 3))

5. User-Agents und IPs rotieren lassen (falls nötig)

Wenn du viel scrapst, rotiere deinen User-Agent-String und erwäge Proxys, um einfache Anti-Bot-Maßnahmen zu umgehen.

6. Sitzungen und Fehler verwalten

  • Nutze try/except, um fehlende Elemente sauber zu behandeln.
  • Protokolliere Fehler und mache Screenshots für das Debugging.

Weitere Optimierungstipps findest du im .

Fortgeschritten: Selenium mit Thunderbit für strukturierten Datenexport kombinieren

Hier wird es richtig interessant – vor allem, wenn du Zeit beim Aufbereiten und Exportieren von Daten sparen willst.

Nachdem du Rohdaten mit Selenium gescrapt hast, kannst du verwenden, um:

  • Felder automatisch zu erkennen: Thunderbits KI kann deine gescrapten Seiten oder CSVs lesen und Spaltennamen vorschlagen („KI-Felder vorschlagen“).
  • Unterseiten zu scrapen: Wenn du eine Liste von URLs hast (zum Beispiel Produktseiten), kann Thunderbit jede einzelne besuchen und deine Tabelle um weitere Details anreichern – ganz ohne zusätzlichen Code.
  • Daten anzureichern: Daten unterwegs übersetzen, kategorisieren oder analysieren.
  • Überall zu exportieren: Mit einem Klick nach Google Sheets, Airtable, Notion, CSV oder Excel exportieren.

Workflow-Beispiel:

  1. Verwende Selenium, um eine Liste von Produkt-URLs und Titeln zu scrapen.
  2. Exportiere die Daten als CSV.
  3. Öffne Thunderbit, importiere deine CSV und lass dir von der KI Felder vorschlagen.
  4. Nutze Thunderbits Unterseiten-Scraping, um von jeder Produkt-URL weitere Details wie Bilder oder Spezifikationen zu ziehen.
  5. Exportiere dein fertiges, strukturiertes Dataset nach Sheets oder Notion.

Diese Kombination spart stundenlange manuelle Nacharbeit und lässt dich dich auf die Analyse konzentrieren statt auf das Sortieren chaotischer Daten. Mehr zu diesem Workflow findest du im .

Best Practices und Fehlerbehebung für Selenium-Web-Scraping

Web-Scraping ist ein bisschen wie Angeln: Manchmal fängst du einen großen Fisch, manchmal verhedderst du dich im Gestrüpp. So bleiben deine Skripte zuverlässig – und ethisch:

Best Practices

  • Robots.txt und Nutzungsbedingungen beachten: Prüfe immer, ob Scraping erlaubt ist.
  • Anfragen drosseln: Server nicht überlasten – Pausen einbauen und auf HTTP-429-Fehler achten.
  • APIs nutzen, wenn verfügbar: Wenn die Daten per API öffentlich zugänglich sind, nutze sie – das ist sicherer und zuverlässiger.
  • Nur öffentliche Daten scrapen: Meide persönliche oder sensible Informationen und beachte Datenschutzgesetze.
  • Pop-ups und CAPTCHAs behandeln: Nutze Selenium, um Pop-ups zu schließen, aber sei vorsichtig mit CAPTCHAs – sie sind schwer zu automatisieren.
  • User-Agents und Verzögerungen randomisieren: Hilft, Erkennung und Blockierung zu vermeiden.

Häufige Fehler und Lösungen

FehlerBedeutungSo behebst du ihn
NoSuchElementExceptionDas Element wurde nicht gefundenSelektor prüfen; Wartezeiten verwenden
Timeout-FehlerSeite oder Element hat zu lange gebrauchtWartezeit erhöhen; Netzwerkgeschwindigkeit prüfen
Treiber-/Browser-MismatchSelenium kann den Browser nicht startenTreiber- und Browser-Version aktualisieren
SitzungsabstürzeBrowser wurde unerwartet geschlossenHeadless-Modus verwenden; Ressourcen verwalten

Weitere Tipps zur Fehlerbehebung findest du im .

Fazit und wichtigste Erkenntnisse

Dynamisches Web-Scraping ist längst nicht mehr nur etwas für Hardcore-Entwickler. Mit Python Selenium kannst du jeden Browser automatisieren, mit den kniffligsten JavaScript-lastigen Websites interagieren und die Daten ziehen, die dein Unternehmen braucht – sei es für Vertrieb, Recherche oder einfach aus Neugier. Denk daran:

  • Selenium ist das Tool der Wahl für dynamische, interaktive Websites.
  • Die drei Kernschritte: Einrichten, finden, extrahieren & speichern.
  • Automatisiere deine Skripte für regelmäßige Datenaktualisierungen.
  • Optimiere auf Geschwindigkeit und Zuverlässigkeit mit Headless-Modus, intelligenten Wartezeiten und effizienten Selektoren.
  • Kombiniere Selenium mit Thunderbit für einfache Strukturierung und Export von Daten – besonders dann, wenn du dir den Tabellenkalkulations-Stress sparen willst.

Bereit, es selbst auszuprobieren? Starte mit den Codebeispielen oben, und wenn du bereit bist, dein Scraping auf das nächste Level zu bringen, probiere für sofortige, KI-gestützte Datenbereinigung und den Export aus. Und wenn du mehr willst, schau im vorbei für tiefgehende Analysen, Tutorials und das Neueste rund um Web-Automatisierung.

Viel Spaß beim Scrapen – und mögen deine Selektoren immer finden, wonach du suchst.

Thunderbit KI-Web-Scraper kostenlos ausprobieren

FAQs

1. Warum sollte ich für Web-Scraping Selenium statt BeautifulSoup oder Scrapy verwenden?
Selenium ist ideal für das Scrapen dynamischer Websites, bei denen Inhalte erst nach Nutzeraktionen oder JavaScript-Ausführung geladen werden. BeautifulSoup und Scrapy sind für statisches HTML schneller, können aber nicht mit dynamischen Elementen interagieren oder Klicks und Scrollen simulieren.

2. Wie mache ich meinen Selenium-Scraper schneller?
Nutze den Headless-Modus, blockiere Bilder und unnötige Ressourcen, verwende effiziente Selektoren und füge zufällige Verzögerungen ein, um menschliches Browsing zu imitieren. Weitere Tipps findest du im .

3. Kann ich Selenium-Scraping-Aufgaben so planen, dass sie automatisch laufen?
Ja! Nutze die schedule-Bibliothek von Python oder den Scheduler deines Betriebssystems (cron oder Aufgabenplanung), um Skripte in festgelegten Intervallen auszuführen. Automatisiertes Scraping hilft dir, deine Daten aktuell zu halten.

4. Was ist der beste Weg, mit Selenium gescrapte Daten zu exportieren?
Verwende Pandas, um Daten als CSV oder Excel zu speichern. Für fortgeschrittene Exporte (Google Sheets, Notion, Airtable) importierst du deine Daten in und nutzt die Exportfunktionen mit einem Klick.

5. Wie gehe ich in Selenium mit Pop-ups und CAPTCHAs um?
Pop-ups kannst du schließen, indem du ihre Schließen-Buttons findest und anklickst. CAPTCHAs sind deutlich schwieriger – wenn du darauf stößt, erwäge einen manuellen Workaround oder einen CAPTCHA-Lösungsdienst und halte dich immer an die Nutzungsbedingungen der Website.

Möchtest du mehr Scraping-Tutorials, KI-Automatisierungstipps oder die neuesten Infos zu Business-Daten-Tools? Abonniere den oder schau dir unseren für praxisnahe Demos an.

Mehr erfahren

Topics
Scraping mit SeleniumSelenium Web Scraping TutorialPython Selenium Website Scraping
Inhaltsverzeichnis

Thunderbit testen

Leads und andere Daten in nur 2 Klicks erfassen. Mit KI.

Thunderbit holen Es ist kostenlos
Daten mit KI extrahieren
Daten einfach zu Google Sheets, Airtable oder Notion übertragen
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week