Mein erster Versuch, Geschäftsdaten von einer Website zu scrapen, ging gründlich daneben: Kaffee in der einen Hand, ein halb fertiges Python-Skript in der anderen, und das Ziel, die Produktpreise eines Mitbewerbers zu ziehen. „Wie schwer kann das schon sein?“, dachte ich. Das Ergebnis war eine CSV-Datei voller leerer Zellen – und neuer Respekt für alle, die behaupten, man könne „das einfach mit Python automatisieren“. 2026 sieht die Lage anders aus: Web Scraping ist zum Rückgrat datengetriebener Unternehmen geworden und liefert Vertriebs-, E-Commerce-, Marketing- und Operations-Teams Echtzeit-Einblicke, die man manuell nie in dieser Form zusammenbekäme.
Eines vorweg: Python Web Scraping ist zwar mächtiger denn je, doch die Landschaft verschiebt sich. Der Markt für Web Scraping boomt – er wurde 2023 auf 4,9 Milliarden US-Dollar geschätzt (rund 4,5 Mrd. €) und wächst mit einer CAGR von 28 %. Nahezu 97 % der Unternehmen investieren in Big Data/KI, um bessere Entscheidungen zu treffen. Die eigentliche Herausforderung besteht aber nicht nur darin, Code zu schreiben – es geht darum, das richtige Tool zu wählen, zu skalieren und dabei nicht den Verstand bei der Pflege eines ganzen Skript-Zoos zu verlieren. In diesem ausführlichen Leitfaden gehe ich jede wichtige Python-Web-Scraping-Bibliothek mit Codebeispielen durch, zeige echte Business-Use-Cases und erkläre, warum ich trotz meiner Liebe zu Python für die meisten Business-User 2026 No-Code-Lösungen wie Thunderbit für die beste Wahl halte.
Was ist Python Web Scraping? Eine nicht-technische Einführung
Im Kern ist Web Scraping nichts anderes als „automatisches Kopieren und Einfügen“. Statt ein Heer von Praktikanten einzustellen, das Produktpreise, Kontaktlisten oder Bewertungen sammelt, nutzt du Software, die Websites besucht, die benötigten Daten extrahiert und sie in eine Tabelle oder Datenbank ausgibt. Python Web Scraping bedeutet, dass du dafür Python-Skripte verwendest – also Websites abrufst, HTML parst und die relevanten Informationsbrocken herausziehst.
Stell es dir wie einen digitalen Assistenten vor, der rund um die Uhr Websites durchsucht, ohne je eine Kaffeepause zu brauchen. Welche Datenarten scrapen Unternehmen am häufigsten? Preisinformationen, Produktdetails, Kontakte, Bewertungen, Bilder, Nachrichtenartikel und sogar Immobilienanzeigen. Manche Websites bieten dafür APIs an, die meisten aber nicht – oder sie begrenzen, worauf du zugreifen kannst. Genau hier kommt Web Scraping ins Spiel: Es ermöglicht den Zugriff auf öffentlich verfügbare Daten in großem Maßstab, selbst wenn kein offizieller „Download“-Button in Sicht ist.
Warum Python Web Scraping für Business-Teams wichtig ist
Klartext: Wer sein Unternehmen 2026 ohne Web Scraping führt, lässt vermutlich Geld liegen. Die Gründe:

- Manuelle Datenerfassung automatisieren: Kein Copy-and-Paste mehr aus langen Listen von Wettbewerberseiten oder Online-Verzeichnissen.
- Echtzeit-Einblicke: Erhalte aktuelle Preis-, Bestands- oder Markttrends genau dann, wenn sie entstehen.
- Skalierung: Scrape Tausende Seiten in der Zeit, die dein Mittagessen in der Mikrowelle braucht.
- ROI: Unternehmen, die datengetriebene Strategien einsetzen, berichten von 8 % höherem Umsatz und 10 % niedrigeren Kosten.
Eine kurze Tabelle mit besonders wirkungsvollen Anwendungsfällen:
| Abteilung | Beispiel für den Anwendungsfall | Mehrwert |
|---|---|---|
| Vertrieb | Leads aus Verzeichnissen scrapen, mit E-Mails anreichern | Größere, besser zielgerichtete Lead-Listen |
| Marketing | Konkurrenzpreise, Aktionen und Bewertungen verfolgen | Intelligentere Kampagnen, schnellere Richtungswechsel |
| E-Commerce | Produktpreise, Lagerbestand und Bewertungen überwachen | Dynamische Preise, Bestandswarnungen |
| Operations | Lieferantendaten bündeln, Reporting automatisieren | Zeitersparnis, weniger manuelle Fehler |
| Immobilien | Objektanzeigen von mehreren Websites sammeln | Mehr Listings, schnellere Reaktion auf Kundenanfragen |
Letztlich ist Web Scraping die Geheimzutat hinter klügeren, schnelleren und wettbewerbsfähigeren Geschäftsentscheidungen.
Überblick: Alle wichtigen Python-Web-Scraping-Bibliotheken mit Code-Snippets
Ich habe dir einen kompletten Rundgang versprochen – los geht’s. Das Python-Ökosystem für Web Scraping ist riesig: Für jede Art von Scraping gibt es die passende Bibliothek, vom einfachen Seitenabruf bis hin zur vollwertigen Browser-Automatisierung. So sieht die Lage aus, inklusive Code-Snippets:
urllib und urllib3: Die Grundlagen von HTTP-Anfragen
Das sind die eingebauten Python-Tools für HTTP-Anfragen. Sie arbeiten auf niedriger Ebene, sind etwas sperrig, aber für einfache Aufgaben zuverlässig.
import urllib3, urllib3.util
http = urllib3.PoolManager()
headers = urllib3.util.make_headers(user_agent="MyBot/1.0")
response = http.request('GET', "<https://httpbin.org/json>", headers=headers)
print(response.status) # HTTP-Statuscode
print(response.data[:100]) # erste 100 Bytes des Inhalts
Nutze sie, wenn du keine Abhängigkeiten willst oder fein abgestimmte Kontrolle brauchst. Für die meisten Aufgaben ist aber etwas Benutzerfreundlicheres sinnvoll – zum Beispiel requests.
requests: Die beliebteste Python-Web-Scraping-Bibliothek
Hätte Python-Scraping ein Maskottchen, wäre es die Bibliothek requests. Sie ist einfach, leistungsstark und übernimmt die ganze HTTP-Arbeit im Hintergrund.
import requests
r = requests.get("<https://httpbin.org/json>", headers={"User-Agent": "MyBot/1.0"})
print(r.status_code) # 200
print(r.json()) # geparster JSON-Inhalt (falls die Antwort JSON war)
Warum ist sie so beliebt? Sie verwaltet Cookies, Sessions, Weiterleitungen und mehr – so kannst du dich auf die Daten konzentrieren, statt dich mit HTTP-Kleinkram herumzuschlagen. Nur nicht vergessen: requests ruft nur das HTML ab. Zum Extrahieren der Daten brauchst du einen Parser wie BeautifulSoup.
BeautifulSoup: Einfache HTML-Analyse und Datenextraktion
BeautifulSoup ist die erste Wahl für das Parsen von HTML in Python. Es ist fehlertolerant, einsteigerfreundlich und arbeitet perfekt mit requests zusammen.
from bs4 import BeautifulSoup
html = "<div class='product'><h2>Widget</h2><span class='price'>$19.99</span></div>"
soup = BeautifulSoup(html, 'html.parser')
title = soup.find('h2').text # "Widget"
price = soup.find('span', class_='price').text # "$19.99"
Es ist ideal für kleine bis mittlere Projekte oder den Einstieg. Für riesige Datensätze oder komplexe Abfragen lohnt sich der Umstieg auf lxml.
lxml und XPath: Schnelle, leistungsstarke HTML/XML-Analyse
Wenn du Geschwindigkeit brauchst oder XPath verwenden willst – eine Abfragesprache für XML/HTML –, ist lxml dein Freund.
from lxml import html
doc = html.fromstring(page_content)
prices = doc.xpath("//span[@class='price']/text()")
Mit XPath holst du Daten mit chirurgischer Präzision heraus. lxml ist schnell und effizient, die Lernkurve ist allerdings etwas steiler als bei BeautifulSoup.
Scrapy: Das Framework für groß angelegtes Web Crawling
Scrapy ist der Schwergewichts-Champion für große Scraping-Jobs. Es ist ein vollständiges Framework – man kann es sich wie Django für Web Scraping vorstellen.
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
start_urls = ["<http://quotes.toscrape.com/>"]
def parse(self, response):
for quote in response.css("div.quote"):
yield {
"text": quote.css("span.text::text").get(),
"author": quote.css("small.author::text").get(),
}
Scrapy verarbeitet asynchrone Anfragen, folgt Links, verwaltet Pipelines und exportiert Daten in mehreren Formaten. Für winzige Skripte ist es überdimensioniert, aber für das Crawlen von Tausenden Seiten kaum zu schlagen.
Selenium, Playwright und Pyppeteer: Dynamische Websites scrapen
Triffst du auf eine Website, die Daten mit JavaScript lädt, brauchst du Browser-Automatisierung. Selenium und Playwright sind hier die großen Namen.
Selenium-Beispiel:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("<https://example.com/login>")
driver.find_element(By.NAME, "username").send_keys("user123")
driver.find_element(By.NAME, "password").send_keys("secret")
driver.find_element(By.ID, "submit-btn").click()
titles = [el.text for el in driver.find_elements(By.CLASS_NAME, "product-title")]
Playwright-Beispiel:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto("<https://website.com>")
page.wait_for_selector(".item")
data = page.eval_on_selector(".item", "el => el.textContent")
Diese Tools bedienen jede Website, die auch ein Mensch nutzen kann – sind aber langsamer und schwergewichtiger als reines HTTP-Scraping. Setze sie ein, wenn du musst, nicht nur, weil du kannst.
MechanicalSoup, RoboBrowser, PyQuery, Requests-HTML: Weitere praktische Tools
-
MechanicalSoup: Automatisiert Formularübermittlungen und Navigation, auf Basis von Requests und BeautifulSoup.
import mechanicalsoup browser = mechanicalsoup.StatefulBrowser() browser.open("<http://example.com/login>") browser.select_form('form#loginForm') browser["username"] = "user123" browser["password"] = "secret" browser.submit_selected() page = browser.get_current_page() print(page.title.text) -
RoboBrowser: API-ähnlich zu MechanicalSoup, wird aber nicht mehr gepflegt – seit Jahren keine neuen PyPI-Releases. Wenn du Formular-/Session-Handling brauchst, nimm MechanicalSoup oder direkt eine
requests.Session(). -
PyQuery: HTML-Parsing im jQuery-Stil.
from pyquery import PyQuery as pq doc = pq("<div><p class='title'>Hello</p><p>World</p></div>") print(doc("p.title").text()) # "Hello" print(doc("p").eq(1).text()) # "World" -
Requests-HTML: Verbindet HTTP-Anfragen, Parsing und sogar JavaScript-Rendering.
from requests_html import HTMLSession session = HTMLSession() r = session.get("<https://example.com>") r.html.render(timeout=20) links = [a.text for a in r.html.find("a.story-link")]
Nutze diese Tools, wenn du eine Abkürzung für Formulare, CSS-Selektoren oder leichtes JavaScript-Rendering brauchst.
asyncio und aiohttp: Python Web Scraping beschleunigen
Willst du Hunderte oder Tausende Seiten scrapen, sind synchrone Anfragen schlicht zu langsam. Hier kommen aiohttp und asyncio für paralleles Scraping ins Spiel.
import aiohttp, asyncio
async def fetch_page(session, url):
async with session.get(url) as resp:
return await resp.text()
async def fetch_all(urls):
async with aiohttp.ClientSession() as session:
tasks = [fetch_page(session, url) for url in urls]
return await asyncio.gather(*tasks)
urls = ["<https://example.com/page1>", "<https://example.com/page2>"]
html_pages = asyncio.run(fetch_all(urls))
Dieser Ansatz kann Dutzende Seiten gleichzeitig abrufen und dein Scraping massiv beschleunigen.
Spezialisierte Bibliotheken: PRAW (Reddit), PyPDF2 und mehr
-
PRAW: Zum Scrapen von Reddit über die API.
import praw reddit = praw.Reddit(client_id='XXX', client_secret='YYY', user_agent='myapp') for submission in reddit.subreddit("learnpython").hot(limit=5): print(submission.title, submission.score) -
PyPDF2: Zum Extrahieren von Text aus PDFs.
from PyPDF2 import PdfReader reader = PdfReader("sample.pdf") num_pages = len(reader.pages) text = reader.pages[0].extract_text() -
Andere: Es gibt Bibliotheken für Instagram, Twitter, OCR (Tesseract) und vieles mehr. Wenn du eine ungewöhnliche Datenquelle hast, hat vermutlich schon jemand eine Python-Bibliothek dafür gebaut.
Vergleichstabelle: Python-Scraping-Bibliotheken
| Tool / Bibliothek | Einfache Nutzung | Geschwindigkeit & Skalierung | Am besten geeignet für |
|---|---|---|---|
| Requests + BeautifulSoup | Einfach | Mittel | Einsteiger, statische Websites, schnelle Skripte |
| lxml (mit XPath) | Mittel | Schnell | Groß angelegte, komplexe Analysen |
| Scrapy | Schwer | Sehr schnell | Unternehmen, große Crawls, Pipelines |
| Selenium / Playwright | Mittel | Langsam | JavaScript-lastige, interaktive Websites |
| aiohttp + asyncio | Mittel | Sehr schnell | Hohe Volumen, meist statische Seiten |
| MechanicalSoup | Einfach | Mittel | Login, Formulare, Sitzungsverwaltung |
| PyQuery | Mittel | Schnell | Fans von CSS-Selektoren, DOM-Manipulation |
| Requests-HTML | Einfach | Variabel | Kleine Jobs, leichtes JavaScript-Rendering |
Daten von jeder Website mit KI scrapen Get Started Free
Schritt-für-Schritt-Anleitung: So baust du einen Python-Web-Scraper (mit Beispielen)
Gehen wir ein praxisnahes Beispiel durch: Produktlisten von einer hypothetischen E-Commerce-Website scrapen, Pagination verarbeiten und als CSV exportieren.
import requests
from bs4 import BeautifulSoup
import csv
base_url = "<https://example.com/products>"
page_num = 1
all_products = []
while True:
url = base_url if page_num == 1 else f"{base_url}/page/{page_num}"
print(f"Seite wird gescrapt: {url}")
response = requests.get(url, timeout=10)
if response.status_code != 200:
print(f"Seite {page_num} gab den Status {response.status_code} zurück, Abbruch.")
break
soup = BeautifulSoup(response.text, 'html.parser')
products = soup.find_all('div', class_='product-item')
if not products:
print("Keine weiteren Produkte gefunden, Abbruch.")
break
for prod in products:
name_tag = prod.find('h2', class_='product-title')
price_tag = prod.find('span', class_='price')
name = name_tag.get_text(strip=True) if name_tag else "N/A"
price = price_tag.get_text(strip=True) if price_tag else "N/A"
all_products.append((name, price))
page_num += 1
print(f"{len(all_products)} Produkte erfasst. Speichere als CSV...")
with open('products_data.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(["Produktname", "Preis"])
writer.writerows(all_products)
print("Daten in products_data.csv gespeichert")
Was passiert hier?
- Wir durchlaufen Seiten, rufen HTML ab, parsen Produkte, erfassen Namen und Preis und stoppen, wenn keine weiteren Produkte gefunden werden.
- Die Ergebnisse werden als CSV exportiert, damit sie sich leicht analysieren lassen.
Du möchtest stattdessen nach Excel exportieren? Dann nutze pandas:
import pandas as pd
df = pd.DataFrame(all_products, columns=["Produktname", "Preis"])
df.to_excel("products_data.xlsx", index=False)
Formulare, Logins und Sessions in Python Web Scraping behandeln
Viele Websites erfordern Login oder das Absenden von Formularen. So gehst du damit um:
Mit requests und einer Session:
session = requests.Session()
login_data = {"username": "user123", "password": "secret"}
session.post("<https://targetsite.com/login>", data=login_data)
resp = session.get("<https://targetsite.com/account/orders>")
Mit MechanicalSoup:
import mechanicalsoup
browser = mechanicalsoup.StatefulBrowser()
browser.open("<http://example.com/login>")
browser.select_form('form#login')
browser["user"] = "user123"
browser["pass"] = "secret"
browser.submit_selected()
Sessions helfen dir dabei, Cookies beizubehalten und angemeldet zu bleiben, während du mehrere Seiten scrapest.
Dynamische Inhalte und JavaScript-gerenderte Seiten scrapen
Wenn die Daten nicht im HTML stehen (der Quelltext zeigt leere Divs), brauchst du Browser-Automatisierung.
Selenium-Beispiel:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver.get("<http://examplesite.com/dashboard>")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'stats-table')))
html = driver.page_source
Oder, wenn du den API-Endpunkt findest, den das JavaScript aufruft, nutze einfach requests, um das JSON direkt abzurufen – das ist viel schneller.
Gescrapte Daten exportieren: CSV, Excel, Datenbanken und mehr
-
CSV: Nutze das Python-Modul
csv(siehe oben). -
Excel: Nutze pandas oder openpyxl.
-
Google Sheets: Nutze die Bibliothek
gspread.import gspread gc = gspread.service_account(filename="credentials.json") sh = gc.open("My Data Sheet") worksheet = sh.sheet1 worksheet.clear() worksheet.append_row(["Name", "Preis"]) for name, price in all_products: worksheet.append_row([name, price]) -
Datenbanken: Nutze
sqlite3,pymysql,psycopg2oder SQLAlchemy für SQL-Datenbanken. Für NoSQL verwendepymongofür MongoDB.
Python Web Scraping im Vergleich zu modernen No-Code-Lösungen: Warum Thunderbit 2025 die beste Wahl ist

Reden wir über das Thema, das alle gern verdrängen: Wartung. Eigene Scraper zu programmieren ist großartig – bis du 100 verschiedene Websites mit jeweils eigenen Eigenheiten scrapen musst und sie alle in der Nacht vor der Abgabe deines großen Reports streiken. Schon erlebt, durchgestanden, graue Haare bekommen.
Deshalb bin ich so ein Fan von Thunderbit. Die Gründe, warum es 2025 meine erste Wahl für Business-User ist:
- Kein Code erforderlich: Thunderbit bietet dir eine visuelle Oberfläche. Klick auf „KI-Felder vorschlagen“, passe die Spalten an, drück auf „Scrape“ – fertig. Kein Python, kein Debugging, keine endlosen Stack-Overflow-Marathons.
- Skalierbar auf Tausende Seiten: Du musst 10.000 Produktlisten scrapen? Die Cloud-Engine von Thunderbit schafft das, und du musst kein Skript beaufsichtigen.
- Keine Wartung: Wenn du für eine E-Commerce-Analyse 100 Wettbewerber-Websites beobachtest, sind 100 Python-Skripte ein Albtraum. Mit Thunderbit wählst du einfach eine Vorlage aus oder passt sie leicht an, und die KI reagiert automatisch auf Layout-Änderungen.
- Unterstützung für Unterseiten und Pagination: Thunderbit kann Links zu Unterseiten folgen, Pagination verarbeiten und deine Daten sogar anreichern, indem es die Detailseite jedes Produkts besucht.
- Sofort-Vorlagen: Für beliebte Websites (Amazon, Zillow, LinkedIn usw.) hat Thunderbit fertige Vorlagen. Ein Klick, und du hast deine Daten.
- Kostenloser Datenexport: Exportiere nach Excel, Google Sheets, Airtable oder Notion – ohne Aufpreis.
Kurz gesagt: Wenn du einfach nur die Daten willst, nimmt dir Thunderbit die gesamte Arbeit ab. Wenn du ein Entwickler bist, der gerne bastelt, bleibt Python dein Spielplatz – aber selbst dann willst du manchmal einfach nur die Aufgabe erledigt sehen.
Thunderbit KI-Web-Scraper kostenlos testen
Best Practices für ethisches und legales Python Web Scraping

Web Scraping ist mächtig, bringt aber auch Verantwortung mit sich. So bleibst du auf der sicheren Seite – rechtlich und karmisch:
- robots.txt prüfen: Respektiere die Vorgaben der Website dazu, was gescrapt werden darf.
- Nutzungsbedingungen lesen: Manche Websites verbieten Scraping ausdrücklich. Ein Verstoß gegen die AGB kann zu einer Sperre oder sogar zu einer Klage führen.
- Rate Limiting: Überlaste die Server nicht – füge Pausen zwischen den Anfragen ein.
- Personenbezogene Daten vermeiden: Sei vorsichtig beim Scrapen von E-Mails, Telefonnummern oder allem, was nach DSGVO oder CCPA als personenbezogen gelten könnte.
- Anti-Bot-Maßnahmen nicht umgehen: Wenn eine Website CAPTCHAs oder aggressives Blocking einsetzt, solltest du zweimal nachdenken.
- Quellen angeben: Wenn du Analysen veröffentlichst, nenne die Herkunft der Daten.
Mehr zur rechtlichen Lage findest du in dieser Analyse des Falls hiQ gegen LinkedIn und zu den DSGVO-Auswirkungen.
Ressourcen, um mehr über Python Web Scraping zu lernen (Kurse, Dokus, Communities)
Du willst tiefer einsteigen? Hier meine kuratierte Liste der besten Ressourcen:
- Offizielle Dokus:
- Bücher:
- „Web Scraping with Python“ von Ryan Mitchell
- „Automate the Boring Stuff with Python“ von Al Sweigart
- Online-Leitfäden:
- Video-Tutorials:
- freeCodeCamp BeautifulSoup Crash Course
- Coreys Schafer YouTube-Kanal
- Communities:
Und natürlich: Wenn du sehen willst, wie No-Code-Scraping funktioniert, schau dir den Thunderbit YouTube-Kanal oder den Thunderbit-Blog an.
Fazit und wichtigste Erkenntnisse: Die richtige Web-Scraping-Lösung im Jahr 2025 wählen
- Python Web Scraping ist enorm leistungsstark und flexibel. Wenn du Code liebst, volle Kontrolle willst und ein bisschen Wartung nicht scheust, ist es eine hervorragende Wahl.
- Es gibt für jeden Scraping-Bedarf eine Python-Bibliothek – statische Seiten, dynamische Inhalte, Formulare, APIs, PDFs, was auch immer.
- Aber für die meisten Business-User ist die Pflege dutzender Skripte mühsam. Wenn dein Ziel ist, Daten schnell, in großem Umfang und ohne Informatikstudium zu erhalten, ist Thunderbit der richtige Weg.
- Die KI-gestützte No-Code-Oberfläche von Thunderbit lässt dich jede Website mit ein paar Klicks scrapen, Unterseiten und Pagination verarbeiten und Daten dorthin exportieren, wo du sie brauchst – ganz ohne Python.
- Ethik und Legalität zählen: Prüfe immer die Website-Richtlinien, respektiere die Privatsphäre und scrape verantwortungsvoll.
Ob du nun ein Python-Profi bist oder einfach nur die Daten ohne Drama haben willst: 2026 sind die Tools besser denn je. Mein Rat? Probiere beide Ansätze aus, schau, was zu deinem Workflow passt, und scheue dich nicht, die langweiligen Aufgaben den Robotern zu überlassen – solange sie dabei höflich bleiben.
Und wenn du es leid bist, kaputten Skripten hinterherzulaufen, probier Thunderbits Chrome-Erweiterung aus. Dein zukünftiges Ich (und dein Kaffeevorrat) werden es dir danken.
Mehr wissen? Schau dir Was ist Data Scraping und wie macht man es oder Wie man Website-Daten mit KI nach Excel scrapt für praktische Anleitungen und die neuesten Scraping-Strategien an.
KI-Web-Scraper testen Get Started Free

