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

Zuletzt aktualisiert am June 26, 2026
Step-by-step Python Selenium web scraping tutorial title slide with coding and web icons

Das Web von heute hat mit dem von früher nicht mehr viel gemein. Fast jede Seite, die du aufrufst, läuft über JavaScript und lädt ihre Inhalte erst nach und nach nach – Stichwort endloses Scrollen, Pop-ups und Dashboards, die ihre Daten erst nach ein, zwei Klicks rausrücken. Inzwischen setzen stolze 98,7 % aller Websites auf JavaScript, was im Klartext heißt: Die alten Scraping-Tools, die nur statisches HTML einlesen, gehen an einem Großteil der spannenden Daten vorbei. Wer schon mal versucht hat, Produktpreise von einem modernen Onlineshop abzugreifen oder Immobilienanzeigen aus einer interaktiven Karte zu ziehen, kennt den Frust: Die gewünschten Daten stehen schlicht nicht im Quellcode.

Und genau da kommt Scraping mit Selenium ins Spiel. Nach Jahren im Bau von Automatisierungstools – und ja, einer ganzen Reihe gescrapter Websites – lässt sich sagen: Selenium zu beherrschen ist eine kleine Superkraft für alle, die aktuelle, dynamische Daten brauchen. In diesem praxisnahen Selenium-Web-Scraping-Tutorial gehen wir die wichtigsten Schritte durch – von der Einrichtung bis zur Automatisierung – und schauen, wie du Selenium mit Thunderbit kombinierst, um strukturierte, direkt exportierbare Daten zu bekommen. Egal, ob du Business-Analyst, Vertriebsprofi oder einfach neugieriger Python-Nutzer bist: Du nimmst praktisches Handwerkszeug mit und vielleicht den einen oder anderen Lacher (denn seien wir ehrlich: XPath-Selektoren zu debuggen, das baut Charakter auf).

Thunderbit KI-Web-Scraper ausprobieren

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

selenium-dynamic-vs-static-web-scraping.png Beginnen wir bei den Grundlagen. Selenium ist ein Open-Source-Framework, mit dem du einen echten Webbrowser – etwa Chrome oder Firefox – per Code fernsteuerst. Stell dir einen Roboter vor, der Seiten öffnet, Buttons klickt, Formulare ausfüllt, scrollt und sogar JavaScript ausführt, genau wie ein Mensch vor dem Bildschirm. Und das ist entscheidend, denn die meisten modernen Websites legen ihre Daten nicht offen auf den Tisch. Stattdessen laden sie Inhalte dynamisch nach, oft erst, nachdem du mit der Seite interagiert hast.

Was ist Data Scraping und wie macht man es 2026? Get Started Free

Was hat das mit Scraping zu tun? Klassiker wie BeautifulSoup oder Scrapy sind hervorragend für statisches HTML, aber sie „sehen" nichts, was erst nach dem ersten Laden per JavaScript erscheint. Selenium dagegen interagiert in Echtzeit mit der Seite und ist damit wie geschaffen für:

  • Produktlisten, die erst nach einem Klick auf „Mehr laden" auftauchen
  • Preise oder Bewertungen, die sich dynamisch aktualisieren
  • Login-Formulare, Pop-ups oder endloses Scrollen
  • Daten aus Dashboards, Karten oder anderen interaktiven Elementen

Kurzum: Selenium ist deine Wahl, wenn du an Daten 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 eindampfen:

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 bei Gelegenheit stolz Freunden zeigen kannst.

Schritt 1: Deine Python-Selenium-Umgebung einrichten

Als Erstes brauchst du Selenium und einen Browser-Treiber (etwa ChromeDriver für Chrome). Die gute Nachricht: Das ist heute so einfach wie nie.

Selenium installieren

Öffne dein Terminal und führe aus:

pip install selenium

Einen WebDriver holen

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

Profi-Tipp: Ab Selenium 4.6 lädt der Selenium Manager die Treiber von selbst herunter. Mit dem Herumfummeln an PATH-Variablen ist also womöglich Schluss (Dokumentation).

Dein erstes Selenium-Skript

Hier ein kurzes „Hello World" für Selenium:

from selenium import webdriver

driver = webdriver.Chrome()  # Oder webdriver.Firefox()
driver.get("https://example.com")
print(driver.title)
driver.quit()

Tipps zur Fehlerbehebung:

  • Erscheint die Meldung „driver not found", prüfe deinen PATH oder lass den Selenium Manager ran.
  • Stelle sicher, dass Browser- und Treiberversion zusammenpassen.
  • Arbeitest du auf einem Headless-Server (ohne GUI), wirf unten einen Blick auf die Tipps zum Headless-Modus.

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

Jetzt wird's spannend: Du sagst Selenium, welche Daten du haben willst. Websites bestehen aus Elementen – Divs, Spans, Tabellen und so weiter – und Selenium bietet dir mehrere Wege, sie aufzuspüren.

Häufige Strategien zum Lokalisieren

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

So setzt du sie ein:

from selenium.webdriver.common.by import By

# Nach ID finden
price = driver.find_element(By.ID, "price").text

# Nach XPath finden
title = driver.find_element(By.XPATH, "//h1").text

# Alle Produktbilder per CSS-Selektor finden
images = driver.find_elements(By.CSS_SELECTOR, ".product img")
for img in images:
    print(img.get_attribute("src"))

Profi-Tipp: Nimm immer den einfachsten und stabilsten Selektor (ID > Klasse > CSS > XPath). Und wenn eine Seite ihre Daten verzögert lädt, setze auf explizite Wartezeiten:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
price_elem = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".price")))

So bricht dein Skript nicht ab, nur weil die Daten eine Sekunde später eintrudeln.

Schritt 3: Daten extrahieren und speichern

Hast du deine Elemente gefunden, geht es ans Einsammeln und Ablegen der Daten an einem nützlichen Ort.

Text, Links und Tabellen extrahieren

Nehmen wir an, du scrapst eine Produkttabelle:

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

Mit Pandas als CSV speichern

import pandas as pd

df = pd.DataFrame(data, columns=["Name", "Preis", "Bestand"])
df.to_csv("products.csv", index=False)

Genauso gut speicherst du als Excel (df.to_excel("products.xlsx")) oder schiebst die Daten per API direkt in Google Sheets.

Vollständiges Beispiel: Produktnamen und Preise scrapen

from selenium import webdriver
from selenium.webdriver.common.by import By
import pandas as pd

driver = webdriver.Chrome()
driver.get("https://example.com/products")

data = []
products = driver.find_elements(By.CLASS_NAME, "product-card")
for p in products:
    title = p.find_element(By.CLASS_NAME, "title").text
    price = p.find_element(By.CLASS_NAME, "price").text
    data.append([title, price])

driver.quit()

df = pd.DataFrame(data, columns=["Titel", "Preis"])
df.to_csv("products.csv", index=False)

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

selenium-vs-traditional-scrapers-comparison.png Klären wir die Gretchenfrage: Wann lohnt sich Selenium, und wann fährst du mit BeautifulSoup oder Scrapy besser? Hier ein kompakter 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 bekommt mit Plugins zwar einige dynamische Inhalte in den Griff, aber das ist nicht seine Paradedisziplin (ScrapingBee).

Wann Selenium die richtige Wahl ist:

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

Wann BeautifulSoup/Scrapy besser passt:

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

Und wer komplett auf Code verzichten will, scrapt dynamische Websites mit Thunderbit per KI – einfach auf „KI-Felder vorschlagen" klicken und nach Google Sheets, Notion oder Airtable exportieren. (Mehr dazu gleich.)

Wie du mit KI jede Website scrapen kannst Get Started Free

Web-Scraping-Aufgaben mit Selenium und Python automatisieren

Hand aufs Herz: Niemand will um 2 Uhr nachts aufstehen, nur um ein Scraping-Skript zu starten. Zum Glück lassen sich deine Selenium-Jobs mit den Scheduling-Tools von Python oder dem Scheduler deines Betriebssystems automatisieren (etwa cron unter Linux/Mac oder die Aufgabenplanung unter Windows).

Mit der schedule-Bibliothek

import schedule
import time

def job():
    # Dein Scraping-Code hier
    print("Scraping...")

schedule.every().day.at("09:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

Oder mit Cron (Linux/Mac)

Trag das in deine Crontab ein, um stündlich auszuführen:

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

Tipps für die Automatisierung:

  • Lass Selenium im Headless-Modus laufen (siehe unten), um GUI-Pop-ups zu umgehen.
  • Protokolliere Fehler und schick dir eine Benachrichtigung, wenn etwas hakt.
  • Schließe den Browser stets mit driver.quit(), um Ressourcen freizugeben.

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

Selenium ist mächtig, aber ohne Acht kann es lahm und speicherhungrig werden. So bringst du Tempo rein und umgehst die typischen Stolperfallen:

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 werkeln:

from selenium.webdriver.chrome.options import Options

opts = Options()
opts.headless = True
driver = webdriver.Chrome(options=opts)

2. Bilder und anderen unnötigen Ballast blockieren

Warum Bilder laden, wenn du nur Text scrapst? Blockiere sie und die Seiten laden schneller:

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

3. Effiziente Selektoren verwenden

  • Setze lieber auf IDs oder einfache CSS-Selektoren statt auf verschachtelte XPaths.
  • Verzichte auf time.sleep() – nimm stattdessen explizite Wartezeiten (WebDriverWait).

4. Zufällige Verzögerungen einbauen

Streu zufällige Pausen ein, um menschliches Surfverhalten nachzuahmen und Blockaden zu entgehen:

import random, time

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

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

Wer viel scrapt, sollte seinen User-Agent-String rotieren und über Proxys nachdenken, um einfache Anti-Bot-Maßnahmen auszuhebeln.

6. Sitzungen und Fehler im Griff behalten

  • Nutze try/except, um fehlende Elemente sauber abzufangen.
  • Protokolliere Fehler und mach Screenshots fürs Debugging.

Weitere Optimierungstipps findest du im Leitfaden von BrowserStack.

Fortgeschritten: Selenium mit Thunderbit für strukturierten Datenexport kombinieren

View media

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

Hast du deine Rohdaten mit Selenium gescrapt, kannst du mit Thunderbit:

  • Felder automatisch erkennen lassen: Thunderbits KI liest deine gescrapten Seiten oder CSVs und schlägt passende Spaltennamen vor („KI-Felder vorschlagen").
  • Unterseiten scrapen: Hast du eine Liste von URLs (etwa Produktseiten), steuert Thunderbit jede einzelne an und reichert deine Tabelle um weitere Details an – ganz ohne zusätzlichen Code.
  • Daten anreichern: Unterwegs übersetzen, kategorisieren oder analysieren.
  • Überall exportieren: Mit einem Klick nach Google Sheets, Airtable, Notion, CSV oder Excel.

Workflow-Beispiel:

  1. Scrape mit Selenium eine Liste von Produkt-URLs und Titeln.
  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 zu jeder Produkt-URL weitere Details wie Bilder oder Spezifikationen nachzuziehen.
  5. Exportiere dein fertiges, strukturiertes Dataset nach Sheets oder Notion.

Diese Kombination spart dir stundenlange Handarbeit und lässt dich dich auf die Analyse konzentrieren, statt chaotische Daten zu sortieren. Mehr zu diesem Workflow steht im Selenium-Leitfaden von Thunderbit.

Selenium-Daten mit Thunderbit AI exportieren

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

Web-Scraping ist ein bisschen wie Angeln: Mal holst du den großen Fisch, mal verhedderst du dich im Gestrüpp. So bleiben deine Skripte zuverlässig – und fair:

Best Practices

  • Robots.txt und Nutzungsbedingungen beachten: Prüfe stets, ob Scraping überhaupt erlaubt ist.
  • Anfragen drosseln: Belaste die Server nicht über Gebühr – baue Pausen ein und achte auf HTTP-429-Fehler.
  • APIs nutzen, wenn verfügbar: Stehen die Daten per API öffentlich bereit, nimm sie – das ist sicherer und stabiler.
  • Nur öffentliche Daten scrapen: Lass die Finger von persönlichen oder sensiblen Informationen und halte dich an die Datenschutzgesetze (in der DACH-Region also die DSGVO).
  • Pop-ups und CAPTCHAs handhaben: Mit Selenium kannst du Pop-ups schließen, aber sei vorsichtig mit CAPTCHAs – die lassen sich nur schwer automatisieren.
  • User-Agents und Verzögerungen randomisieren: Das hilft, Erkennung und Blockierung aus dem Weg zu gehen.

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 Selenium-Tutorial von Thunderbit.

Fazit und wichtigste Erkenntnisse

Dynamisches Web-Scraping ist schon lange kein Hexenwerk mehr, das nur Hardcore-Entwicklern vorbehalten bleibt. Mit Python Selenium automatisierst du jeden Browser, kommst auch mit den vertracktesten JavaScript-Seiten klar und ziehst genau die Daten, die dein Unternehmen braucht – sei es für Vertrieb, Recherche oder reine Neugier. Behalte im Kopf:

  • Selenium ist das Werkzeug der Wahl für dynamische, interaktive Websites.
  • Die drei Kernschritte: Einrichten, finden, extrahieren & speichern.
  • Automatisiere deine Skripte für regelmäßige Datenaktualisierungen.
  • Optimiere auf Tempo und Zuverlässigkeit mit Headless-Modus, klugen Wartezeiten und effizienten Selektoren.
  • Kombiniere Selenium mit Thunderbit, um Daten einfach zu strukturieren und zu exportieren – besonders dann, wenn du dir den Tabellen-Stress sparen willst.

Bereit für den Selbstversuch? Starte mit den Codebeispielen von oben, und wenn du dein Scraping aufs nächste Level heben willst, probiere Thunderbit für die sofortige, KI-gestützte Datenbereinigung und den Export. Wer noch tiefer einsteigen will, schaut im Thunderbit Blog vorbei – dort gibt es ausführliche 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 Get Started Free

FAQs

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

2. Wie mache ich meinen Selenium-Scraper schneller?
Nutze den Headless-Modus, blockiere Bilder und unnötige Ressourcen, setze auf effiziente Selektoren und streu zufällige Verzögerungen ein, um menschliches Browsing nachzuahmen. Weitere Tipps stehen im Leitfaden von BrowserStack.

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 festen Intervallen auszuführen. Automatisiertes Scraping hält deine Daten aktuell.

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

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

Du willst mehr Scraping-Tutorials, KI-Automatisierungstipps oder die neuesten Infos zu Business-Daten-Tools? Abonniere den Thunderbit Blog oder schau dir unseren YouTube-Kanal für praxisnahe Demos an.

Mehr erfahren

Shuai Guan
Shuai Guan
CEO bei Thunderbit | Experte für KI-gestützte Datenautomatisierung Shuai Guan ist CEO von Thunderbit und Absolvent der University of Michigan im Bereich Engineering. Mit fast zehn Jahren Erfahrung in Tech und SaaS-Architektur hat er sich darauf spezialisiert, komplexe KI-Modelle in praxisnahe No-Code-Tools zur Datenextraktion zu verwandeln. In diesem Blog teilt er ungefilterte, in der Praxis bewährte Einblicke in Web-Scraping- und Automatisierungsstrategien, damit Sie intelligentere, datengetriebene Workflows aufbauen können. Wenn er gerade keine Datenprozesse optimiert, widmet er dieselbe Liebe zum Detail seiner Leidenschaft für die Fotografie.
Topics
Scraping mit SeleniumSelenium Web Scraping TutorialPython Selenium Website Scraping

Thunderbit ausprobieren

Leads und andere Daten in nur 2 Klicks extrahieren. Mit KI unterstützt.

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