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

Zuletzt aktualisiert am January 23, 2026

Das Web hat sich in den letzten Jahren komplett gewandelt. Fast jede Seite setzt heute auf JavaScript, um Inhalte dynamisch nachzuladen – denk mal an unendliches Scrollen, nervige Pop-ups oder Dashboards, die erst nach einem Klick ihre Daten zeigen. Tatsächlich nutzen inzwischen , was bedeutet: Mit klassischen Scraping-Tools, die nur statisches HTML auslesen, verpasst du eine Menge wertvoller Infos. Wer schon mal versucht hat, Produktpreise von einer modernen E-Commerce-Seite zu holen oder Immobilienanzeigen von einer interaktiven Karte zu sammeln, kennt das Problem: Die gesuchten Daten tauchen im Quelltext einfach nicht auf.

Genau hier kommt scraping mit selenium ins Spiel. Nach vielen Jahren in der Automatisierung (und unzähligen gescrapten Seiten) kann ich sagen: Wenn du aktuelle, dynamische Daten brauchst, ist Selenium ein echter Joker. In diesem praxisnahen selenium web scraping tutorial zeige ich dir Schritt für Schritt, wie du von der Einrichtung bis zur Automatisierung alles meisterst – und wie du Selenium mit kombinierst, um strukturierte, exportfertige Daten zu bekommen. Egal ob du Business-Analyst, im Vertrieb oder einfach neugieriger Python-Fan bist: Du nimmst praktische Skills mit – und vielleicht auch ein Lächeln, denn das Debuggen von XPath-Selektoren kann echt Nerven kosten, aber macht dich definitiv besser.

Was ist Selenium und warum eignet es sich fürs Web Scraping?

selenium-dynamic-vs-static-web-scraping.png Fangen wir mit den Basics an. ist ein Open-Source-Framework, mit dem du einen echten Browser – wie Chrome oder Firefox – per Code steuern kannst. Stell dir Selenium wie einen Roboter vor, der Webseiten öffnet, Buttons klickt, Formulare ausfüllt, scrollt und sogar JavaScript ausführt – genau wie ein Mensch. Das ist entscheidend, denn die meisten modernen Seiten zeigen ihre Daten nicht direkt an, sondern laden sie erst nach Interaktionen nach.

Warum ist das fürs Scraping wichtig? Tools wie BeautifulSoup oder Scrapy sind super für statisches HTML, aber sie „sehen“ keine Inhalte, die erst nach dem Laden per JavaScript erscheinen. Selenium dagegen kann mit der Seite interagieren und ist daher ideal für:

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

Kurz gesagt: Selenium ist immer dann die richtige Wahl, wenn du Daten extrahieren willst, die erst nach dem Laden oder durch Nutzeraktionen sichtbar werden.

Die wichtigsten Schritte beim Web Scraping mit Python und Selenium

scraping mit selenium läuft im Grunde in drei Schritten ab:

SchrittWas du tustWarum es wichtig ist
1. Umgebung einrichtenSelenium, WebDriver und Python-Bibliotheken installierenDamit alles reibungslos läuft und du keine Setup-Probleme hast
2. Elemente findenDie gewünschten Daten per ID, Klasse, XPath etc. lokalisierenDamit du gezielt die richtigen Infos extrahierst, auch wenn sie versteckt sind
3. Daten extrahieren & speichernTexte, Links oder Tabellen auslesen und als CSV/Excel sichernSo werden Rohdaten zu nutzbaren Informationen

Schauen wir uns jeden Schritt mit praktischen Beispielen und Code zum Nachmachen an.

Schritt 1: Python-Selenium-Umgebung einrichten

Zuerst musst du Selenium und einen passenden Browser-Treiber (z. B. ChromeDriver für Chrome) installieren. Gute Nachricht: Das geht heute super easy.

Selenium installieren

Öffne dein Terminal und gib ein:

1pip install selenium

WebDriver herunterladen

  • Chrome: herunterladen (Version muss zu deinem Chrome passen).
  • Firefox: herunterladen.

Tipp: Ab Selenium 4.6+ kannst du Selenium Manager nutzen, um Treiber automatisch herunterzuladen – das spart Ärger mit PATH-Variablen ().

Dein erstes Selenium-Skript

Ein einfaches „Hello World“ mit Selenium:

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

Fehlerbehebung:

  • Bei „driver not found“-Fehler: PATH prüfen oder Selenium Manager nutzen.
  • Browser- und Treiberversionen müssen zusammenpassen.
  • Auf Servern ohne GUI: Headless-Modus verwenden (siehe unten).

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

Jetzt wird’s spannend: Du sagst Selenium, welche Daten du willst. Webseiten bestehen aus Elementen – divs, spans, Tabellen usw. – und Selenium bietet verschiedene Wege, diese zu finden.

Gängige Suchstrategien

  • By.ID: Element mit eindeutiger ID finden
  • By.CLASS_NAME: Nach CSS-Klasse suchen
  • By.XPATH: XPath-Ausdrücke nutzen (sehr flexibel, aber manchmal fehleranfällig)
  • By.CSS_SELECTOR: CSS-Selektoren verwenden (ideal für komplexe Abfragen)

So funktioniert’s im Code:

1from selenium.webdriver.common.by import By
2# Nach ID suchen
3price = driver.find_element(By.ID, "price").text
4# Nach XPath suchen
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"))

Tipp: Nutze immer den stabilsten und einfachsten Locator (ID > Klasse > CSS > XPath). Wenn Daten erst mit Verzögerung erscheinen, helfen 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 verhinderst du Abstürze, wenn Daten etwas länger laden.

Schritt 3: Daten extrahieren und speichern

Sobald du die gewünschten Elemente gefunden hast, kannst du die Daten auslesen und speichern.

Beispiel: Du willst eine Produkttabelle scrapen:

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("produkte.csv", index=False)

Du kannst auch nach Excel exportieren (df.to_excel("produkte.xlsx")) oder die Daten per API direkt zu Google Sheets schicken.

Komplettes Beispiel: Produkt-Titel 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("produkte.csv", index=False)

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

selenium-vs-traditional-scrapers-comparison.png Wann ist Selenium die beste Wahl – und wann reichen BeautifulSoup oder Scrapy? Hier ein schneller Vergleich:

ToolIdeal fürJavaScript-Unterstützung?Geschwindigkeit & Ressourcen
SeleniumDynamische/interaktive SeitenJaLangsamer, braucht mehr RAM
BeautifulSoupEinfaches statisches HTMLNeinSehr schnell, ressourcenschonend
ScrapyGroßes Crawling statischer SeitenEingeschränkt*Extrem schnell, asynchron, wenig RAM
ThunderbitNo-Code, Business-ScrapingJa (KI)Schnell bei kleinen/mittleren Jobs

*Scrapy kann mit Plugins etwas dynamischen Content verarbeiten, ist aber nicht darauf spezialisiert ().

Selenium ist ideal, wenn:

  • Daten erst nach Klicks, Scrollen oder Login erscheinen
  • Du mit Pop-ups, endlosem Scrollen oder Dashboards interagieren musst
  • Statische Scraper nicht ausreichen

BeautifulSoup/Scrapy sind besser, wenn:

  • Die Daten direkt im HTML stehen
  • Du tausende Seiten schnell scrapen willst
  • Du möglichst wenig Ressourcen verbrauchen möchtest

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

Web Scraping automatisieren mit Selenium und Python

Mal ehrlich: Niemand will nachts um 2 Uhr ein Scraping-Skript manuell starten. Zum Glück kannst du deine Selenium-Jobs mit Python-Tools oder dem Betriebssystem-Planer (z. B. cron unter Linux/Mac oder Aufgabenplanung unter Windows) automatisieren.

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 deiner crontab hinzu, um das Skript stündlich auszuführen:

10 * * * * python /pfad/zu/deinem_script.py

Tipps für die Automatisierung:

  • Selenium im Headless-Modus ausführen (siehe unten), um Pop-ups zu vermeiden.
  • Fehler protokollieren und dich bei Problemen benachrichtigen lassen.
  • Browser immer mit driver.quit() schließen, um Ressourcen freizugeben.

Effizienter scrapen: Tipps für schnelleres und zuverlässigeres Selenium

Selenium ist mächtig, kann aber langsam und speicherhungrig werden. So holst du das Maximum raus:

1. Headless-Modus nutzen

Du musst nicht zuschauen, wie Chrome hundertmal öffnet und schließt. Im Headless-Modus läuft der Browser unsichtbar im Hintergrund:

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

2. Bilder und unnötige Inhalte blockieren

Wenn du nur Text brauchst, blockiere Bilder – das beschleunigt das Laden:

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

3. Effiziente Locator verwenden

  • IDs oder einfache CSS-Selektoren sind schneller als komplexe XPaths.
  • Vermeide time.sleep() – nutze stattdessen explizite Wartezeiten (WebDriverWait).

4. Zufällige Pausen einbauen

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

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

5. User Agents und IPs rotieren (bei Bedarf)

Wenn du viel scrapen willst, wechsel regelmäßig den User Agent und nutze ggf. Proxies, um Anti-Bot-Maßnahmen zu umgehen.

6. Sitzungen und Fehler managen

  • Mit try/except-Blöcken auf fehlende Elemente reagieren.
  • Fehler protokollieren und Screenshots für die Fehlersuche machen.

Weitere Optimierungstipps findest du im .

Fortgeschritten: Selenium und Thunderbit für strukturierte Daten kombinieren

Jetzt wird’s richtig spannend – vor allem, wenn du dir die Nachbearbeitung und den Export erleichtern willst.

Nachdem du mit Selenium Rohdaten gesammelt hast, kannst du nutzen, um:

  • Felder automatisch erkennen zu lassen: Die KI von Thunderbit liest deine gescrapten Seiten oder CSVs und schlägt passende Spaltennamen vor („KI-Felder vorschlagen“).
  • Unterseiten scrapen: Hast du eine Liste von URLs (z. B. Produktseiten), besucht Thunderbit jede Seite und ergänzt deine Tabelle um weitere Details – ganz ohne Extra-Code.
  • Daten anreichern: Übersetze, kategorisiere oder analysiere deine Daten direkt im Tool.
  • Exportieren wohin du willst: Mit einem Klick nach Google Sheets, Airtable, Notion, CSV oder Excel exportieren.

Beispiel-Workflow:

  1. Mit Selenium eine Liste von Produkt-URLs und Titeln scrapen.
  2. Daten als CSV exportieren.
  3. CSV in Thunderbit importieren und KI-Felder vorschlagen lassen.
  4. Mit Thunderbits Unterseiten-Scraping weitere Details (z. B. Bilder, Spezifikationen) zu jeder Produkt-URL holen.
  5. Das finale, strukturierte Dataset nach Sheets oder Notion exportieren.

Diese Kombi spart dir stundenlange Nachbearbeitung und du kannst dich auf die Analyse statt auf Datenbereinigung konzentrieren. Mehr dazu im .

Best Practices und Fehlerbehebung beim Selenium Web Scraping

Web Scraping ist manchmal wie Angeln: Mal hast du Glück, mal hängst du im Gestrüpp. So bleiben deine Skripte zuverlässig – und rechtlich sauber:

Best Practices

  • robots.txt und Nutzungsbedingungen beachten: Immer checken, ob Scraping erlaubt ist.
  • Anfragen drosseln: Server nicht überlasten – Pausen einbauen und auf HTTP 429 achten.
  • APIs nutzen, wenn verfügbar: Öffentliche APIs sind meist sicherer und stabiler.
  • Nur öffentliche Daten scrapen: Keine sensiblen oder personenbezogenen Daten sammeln, Datenschutz beachten.
  • Pop-ups und CAPTCHAs handhaben: Pop-ups per Selenium schließen, bei CAPTCHAs vorsichtig sein – die sind schwer zu automatisieren.
  • User Agents und Pausen variieren: So vermeidest du Blockierungen.

Häufige Fehler und Lösungen

FehlerBedeutungLösung
NoSuchElementExceptionElement nicht gefundenLocator prüfen, Wartezeiten nutzen
Timeout-FehlerSeite/Element lädt zu langsamWartezeit erhöhen, Netzwerk prüfen
Treiber-/Browser-MismatchSelenium kann Browser nicht startenTreiber und Browser aktualisieren
SitzungsabstürzeBrowser schließt unerwartetHeadless-Modus nutzen, Ressourcen managen

Weitere Tipps zur Fehlerbehebung findest du im .

Fazit & wichtigste Erkenntnisse

Dynamisches Web Scraping ist längst nicht mehr nur was für Hardcore-Entwickler. Mit Python und Selenium kannst du jeden Browser automatisieren, selbst komplexe JavaScript-Seiten auslesen und die Daten holen, die du für dein Business brauchst – egal ob für Vertrieb, Recherche oder einfach aus Neugier. Merke dir:

  • Selenium ist das Tool der Wahl für dynamische, interaktive Seiten.
  • Die drei Schlüsselschritte: Einrichten, Elemente finden, Daten extrahieren & speichern.
  • Automatisiere deine Skripte für regelmäßige Daten-Updates.
  • Optimiere für Geschwindigkeit und Zuverlässigkeit mit Headless-Modus, klugen Wartezeiten und effizienten Locators.
  • Kombiniere Selenium mit Thunderbit für einfache Datenstrukturierung und Export – besonders, wenn du dir die Tabellen-Nachbearbeitung sparen willst.

Bereit, es selbst auszuprobieren? Starte mit den obigen Codebeispielen und wenn du dein Scraping aufs nächste Level bringen willst, teste für sofortige, KI-gestützte Datenaufbereitung und Export. Und wenn du noch mehr wissen willst, schau im vorbei – dort findest du tiefergehende Anleitungen, Tutorials und die neuesten Trends rund um Web-Automatisierung.

Viel Erfolg beim Scrapen – und mögen deine Selektoren immer die richtigen Daten finden.

Thunderbit KI-Web-Scraper kostenlos testen

FAQs

1. Warum sollte ich Selenium fürs Web Scraping statt BeautifulSoup oder Scrapy nutzen?
Selenium ist perfekt für dynamische Webseiten, bei denen Inhalte erst nach Nutzeraktionen oder JavaScript erscheinen. BeautifulSoup und Scrapy sind schneller bei statischem HTML, können aber keine dynamischen Elemente oder Interaktionen abbilden.

2. Wie mache ich meinen Selenium-Scraper schneller?
Nutze den Headless-Modus, blockiere Bilder und unnötige Ressourcen, verwende effiziente Locators und baue zufällige Pausen ein, um menschliches Verhalten zu simulieren. Weitere Tipps findest du im .

3. Kann ich Selenium-Scraping-Aufgaben automatisch planen?
Klar! Mit der Python-Bibliothek schedule oder dem Betriebssystem-Planer (cron oder Aufgabenplanung) kannst du Skripte zu festen Zeiten ausführen lassen. So bleiben deine Daten immer aktuell.

4. Wie exportiere ich am besten Daten, die ich mit Selenium gescrapt habe?
Mit Pandas kannst du Daten als CSV oder Excel speichern. Für fortgeschrittene Exporte (Google Sheets, Notion, Airtable) importierst du deine Daten einfach in und nutzt die Exportfunktionen mit nur einem Klick.

5. Wie gehe ich mit Pop-ups und CAPTCHAs in Selenium um?
Pop-ups kannst du schließen, indem du deren Schließen-Button per Selenium anklickst. CAPTCHAs sind deutlich schwieriger – hier hilft oft nur ein manueller Workaround oder ein Captcha-Service. Beachte immer die Nutzungsbedingungen der Seite.

Du willst mehr Tutorials, KI-Automatisierungstipps oder aktuelle Infos zu Business-Daten-Tools? Abonniere den oder schau auf unserem für praxisnahe Demos vorbei.

Mehr erfahren

Shuai Guan
Shuai Guan
Co-founder/CEO @ Thunderbit. Passionate about cross section of AI and Automation. He's a big advocate of automation and loves making it more accessible to everyone. Beyond tech, he channels his creativity through a passion for photography, capturing stories one picture at a time.
Topics
Scraping mit SeleniumSelenium Web Scraping TutorialPython Selenium Website Scraping
Inhaltsverzeichnis

Teste Thunderbit

Leads und weitere Daten mit nur 2 Klicks extrahieren. KI-gestützt.

Thunderbit holen Kostenlos
Daten mit KI extrahieren
Übertrage Daten einfach nach Google Sheets, Airtable oder Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week