Gemini-Web-Scraping, das wirklich funktioniert (mit Code und ohne Code)

Zuletzt aktualisiert am April 15, 2026

Die meisten Tutorials zu „Gemini Web Scraping“ wirken so, als wären sie für ein und dieselbe Person geschrieben: einen Python-Entwickler, der bereits eine virtuelle Umgebung, ein Pydantic-Schema und eine feste Meinung zu Async-Libraries hat. Falls das auf dich zutrifft, perfekt — wir kommen gleich zum Code. Aber wenn du im Vertrieb, Marketing oder im E-Commerce-Operations-Team arbeitest und einfach strukturierte Daten aus mehreren Webseiten holen willst, ohne erst lernen zu müssen, was markdownify macht, bist du nicht allein.

Gemini ist Googles multimodale KI-Familie und entwickelt sich rasant zu einer der bevorzugten Lösungen für die Extraktion von Webdaten. Die Stack Overflow Developer Survey 2025 zeigt, dass KI-Tools bereits nutzen oder dies planen — und LLM-gestütztes Scraping ist ein wichtiger Teil dieses Trends. Doch zwischen einem „coolen Demo-Workflow für eine einzelne URL“ und einer belastbaren Pipeline, die Pagination, Unterseiten, Anti-Bot-Schutz und unordentliches HTML in großem Umfang verarbeitet, liegt eine echte Lücke. Dieser Leitfaden erklärt sowohl den Weg mit Python (Code) als auch die No-Code-Variante, zeigt die Modellwahl mit konkreter Token-Rechnung, behandelt Multi-Page-Scraping ausführlich (also genau den Schritt, den fast alle anderen Tutorials auslassen) und ist ehrlich darüber, wo Gemini-Scraping an seine Grenzen stößt. Am Ende weißt du, welcher Ansatz zu deinem Workflow passt — und wie du die Stolperfallen vermeidest, über die Entwickler und Business-User gleichermaßen stolpern.

Was ist Gemini Web Scraping?

Gemini Web Scraping bedeutet, den Inhalt einer Webseite — also HTML, Markdown oder sogar einen Screenshot — an eines der Gemini-Modelle von Google zu senden. Das Modell interpretiert die Seite anschließend und gibt strukturierte Daten zurück. Keine CSS-Selektoren. Kein XPath. Keine fragilen Regeln, die beim nächsten Layout-Update sofort zerbrechen.

Der grundlegende Ablauf sieht so aus:

  1. Seite abrufen (mit requests, einem Headless-Browser oder einer Chrome-Erweiterung)
  2. Inhalt bereinigen und umwandeln (meist HTML → Markdown, um Token-Kosten zu senken)
  3. An Gemini senden mit einem Schema, das die gewünschten Felder beschreibt
  4. Strukturiertes JSON zurückerhalten — bereit für Spreadsheet, CRM oder Datenbank

Verglichen mit klassischem Scraping mit BeautifulSoup oder Selenium, bei dem man Selektoren wie div.product-title > span.price fest verdrahtet und hofft, dass die Seite nächsten Dienstag nicht umgebaut wird, liest Gemini eine Seite eher wie ein Mensch. Es versteht Kontext, passt sich an Layoutänderungen an und kommt mit chaotischer Formatierung ohne Custom Rules zurecht.

Noch ein wichtiger Punkt: Gemini ist nativ multimodal. Es verarbeitet Text, Bilder, Videos, Audio, PDFs und Code in einer einzigen Anfrage. Das eröffnet Scraping-Ansätze — etwa einen Screenshot statt HTML zu senden — die die meisten anderen LLMs schlicht nicht leisten können. Darauf kommen wir später zurück.

Warum Gemini Web Scraping für Business-Teams wichtig ist

Wenn du dich fragst, warum sich ein Marketing Manager oder E-Commerce-Analyst überhaupt für LLMs und Web Scraping interessieren sollte, ist die Kurzantwort: Es spart enorm viel Zeit — und bricht nicht bei jedem Website-Update zusammen.

Der — von rund 1 Milliarde US-Dollar im Jahr 2025 auf über 2 Milliarden US-Dollar bis 2030. Der am schnellsten wachsende Bereich darin ist die KI-gestützte Extraktion. Das ist kein Hype, sondern spiegelt einen echten Wandel in der Art wider, wie Teams Daten sammeln.

So passt Gemini Scraping in typische Business-Workflows:

AnwendungsfallWas extrahiert wirdWer profitiert
Lead-GenerierungKontaktdaten aus Verzeichnissen, LinkedIn (öffentlich), UnternehmenswebsitesVertrieb, BDRs
Preisbeobachtung der KonkurrenzProduktpreise, Lagerstatus, AktionenE-Commerce, Pricing-Teams
Produktkatalog-ExtraktionNamen, Spezifikationen, Bilder, BewertungenMerchandising, Marketplace-Operations
ImmobilienangeboteObjektdetails, Preise, MaklerinfosMakler, Investoren
Content-AggregationNews, Blogposts, Social-Media-ErwähnungenMarketing, PR
Jobmarkt-ResearchJobtitel, Gehälter, StandorteHR, Recruiting

Der praktische Vorteil ist doppelt. Erstens entfällt der Zyklus aus Schreiben, Testen und Debuggen von Parsing-Skripten — das Modell liest die Seite jedes Mal neu. Zweitens musst du nicht jedes Mal einen Entwickler beauftragen, wenn eine Website ein <div> verschiebt. Die kostenlose Gemini-Einstiegsebene macht Experimente für kleine Projekte nahezu kostenfrei: , ganz ohne Kreditkarte.

Welches Gemini-Modell solltest du wählen? (Flash Lite vs. Flash vs. Pro)

Nicht alle Gemini-Modelle sind fürs Scraping gleich gut geeignet. Das ist der praktische Vergleich, den ich mir in jedem Tutorial wünschen würde — denn die falsche Wahl kostet entweder unnötig Geld oder liefert Datenmüll.

Alle drei aktuellen Gemini-2.5-Modelle teilen sich ein Kontextfenster von 1.048.576 Tokens und sind multimodal. Die Unterschiede liegen bei Kosten, Geschwindigkeit und der Qualität bei komplexen Extraktionen.

ModellInput-Kosten (pro 1 Mio. Tokens)Output-Kosten (pro 1 Mio. Tokens)Am besten geeignet fürGenauigkeit bei komplexen SchemataGeschwindigkeit
Gemini 2.5 Flash Liteca. $0.025ca. $0.10Einfache, flache Daten, hohe Mengen⚠️ Tut sich schwer mit verschachtelten/optionalen FeldernAm schnellsten
Gemini 2.5 Flashca. $0.075ca. $0.625Die meisten Scraping-Aufgaben✅ Gut für strukturierte ExtraktionSchnell
Gemini 2.5 Proca. $0.3125ca. $2.50Komplexe verschachtelte Schemata, Sonderfälle✅ Beste GenauigkeitAm langsamsten

(Preise laut . Die Batch API ist 50 % günstiger.)

Gemini 2.5 Flash Lite: Schnell und günstig, aber mit Lücken

Flash Lite ist die Budget-Option. Sie eignet sich ideal für einfache, flache Daten — Produktnamen, Preise, Listen mit einer Ebene — in hoher Menge. Es gibt jedoch dokumentierte Probleme mit optionalen Feldern, Zeitstempeln und verschachtelten Daten. Ein Entwickler berichtete im Google-Forum Flash Lite „durchdreht“, wenn Schemata nicht erforderliche Eigenschaften enthalten, und repetitive Texte ausgibt, bis das Token-Limit erreicht ist. Wenn dein Schema mehr als zwei Verschachtelungsebenen hat oder Felder auf manchen Seiten fehlen können, verbrennt Flash Lite sowohl Tokens als auch deine Geduld.

Gemini 2.5 Flash: Der Sweet Spot für die meisten Scraping-Jobs

Mit Flash würde ich bei fast jedem realen Scraping-Projekt anfangen. Es verarbeitet strukturierte Extraktion zuverlässig, kommt mit Pagination-Logik klar und kostet auf der Input-Seite etwa dreimal so viel wie Flash Lite — aber der Genauigkeitsgewinn lohnt sich. In liegt Flash nur wenige Punkte hinter Pro. Das heißt: Es beherrscht genau das Ableiten, Normalisieren und Glätten, das Scraping in der Praxis braucht.

Gemini 2.5 Pro: Maximale Genauigkeit für komplexe Daten

Pro ist das Präzisionswerkzeug. Nutze es, wenn du tief verschachtelte Schemata extrahierst (zum Beispiel Produktspezifikationen mit mehreren Varianten-Gruppen, jeweils mit Größen, Farben und Preisen) oder wenn erfundene Felder nicht akzeptabel sind — etwa bei juristischen, finanziellen oder medizinischen Daten. Es kostet auf der Input-Seite ungefähr 12-mal so viel wie Flash Lite, also sollte es für Aufgaben reserviert bleiben, bei denen Genauigkeit wichtiger ist als Preis.

Rechenbeispiel: 10.000 Produktseiten

Wenn du HTML vorab in Markdown umwandelst — was du tun solltest, dazu gleich mehr — sinkt eine typische Produktseite von rund 20.000 Tokens rohem HTML auf etwa 4.000 Tokens Markdown. Das Output-JSON liegt bei ungefähr 500 Tokens pro Seite.

ModellInput-Kosten (40 Mio. Tokens)Output-Kosten (5 Mio. Tokens)Gesamt für 10K Seiten
Flash Lite$1.00$0.50ca. $1.50
Flash$3.00$3.13ca. $6.13
Pro$12.50$12.50ca. $25.00

Ohne Markdown-Vorverarbeitung (also mit rohem HTML bei etwa 200 Mio. Input-Tokens) steigen diese Zahlen um das 4- bis 5-Fache. Die Vorverarbeitung ist der Hebel mit dem größten Effekt in der gesamten Pipeline.

Code oder No-Code: Zwei Wege zum Gemini Web Scraping

Hier kommt die entscheidende Weiche. Wenn du als Entwickler eine eigene Pipeline baust, gibt dir der Python- + Gemini-API-Ansatz maximale Kontrolle. Wenn du als Business-User jetzt Daten brauchst und kein Terminal anfassen willst, bringt dich ein No-Code-AI-Scraper schneller ans Ziel.

KriteriumGemini API (Python)Thunderbit (No-Code)
Einrichtungszeit15–30 Min. (Umgebung, Keys, Bibliotheken)< 1 Min. (Chrome-Erweiterung installieren)
Programmieren nötigJa (Python, Pydantic)Nein
PaginationManuelles SkriptingIntegriert (Klick oder Infinite Scroll)
Subpage-AnreicherungEigener Code pro Website1-Klick-„Scrape Subpages“
Token-KostenmanagementManuell (HTML-Bereinigung, Modellwahl)Vom KI-Engine übernommen
ExportoptionenJSON/CSV per SkriptExcel, Google Sheets, Airtable, Notion
Am besten fürEntwickler mit eigener PipelineBusiness-User, die sofort Daten brauchen

ist die No-Code-Option, die wir bei Thunderbit entwickelt haben — eine Chrome-Erweiterung, die KI (unter der Haube unter anderem Gemini, ChatGPT und Claude) nutzt, um Felder vorzuschlagen, Daten mit zwei Klicks zu extrahieren und in dein Wunschtool zu exportieren. Beide Wege erkläre ich unten.

Für Nutzer, die zuerst mit Tabellen arbeiten, ist Quadratic ebenfalls interessant — ein KI-Spreadsheet, das Gemini-gestütztes Web Scraping direkt innerhalb der Tabelle ausführen kann. Aber für Workflows, die von einer konkreten Webseite starten (Produktlisten, Verzeichnisse, Lead-Datenbanken), passt Thunderbit meist besser zum mentalen Modell des Nutzers.

Schritt für Schritt: Gemini Web Scraping mit Python

Dieser Abschnitt richtet sich an Entwickler. Wenn du den No-Code-Weg willst, spring einfach weiter nach unten.

Bevor du startest:

  • Schwierigkeit: Mittelstufe (Python-Grundkenntnisse erforderlich)
  • Zeitbedarf: ca. 20–30 Minuten für den ersten Scrape
  • Was du brauchst: Python 3.10+, ein Google-AI-Studio-Konto (kostenlos), eine Ziel-URL

Schritt 1: Python-Umgebung und Gemini-API-Key einrichten

Lege einen Projektordner und eine virtuelle Umgebung an und installiere die benötigten Bibliotheken:

1mkdir gemini-scraper && cd gemini-scraper
2python -m venv venv && source venv/bin/activate
3pip install -U google-genai requests beautifulsoup4 markdownify pydantic

Wichtig: Das einzige richtige SDK im Jahr 2026 ist google-genai. Das ältere Paket google-generativeai hat am 2025-11-30 das End-of-Life erreicht und ist inzwischen veraltet. Wenn du in einem Tutorial import google.generativeai as genai siehst, ist dieser Code nicht mehr aktuell.

Als Nächstes holst du dir deinen API-Key aus dem . Klicke auf „Get API Key“, erstelle einen neuen Schlüssel und speichere ihn als Umgebungsvariable:

1export GEMINI_API_KEY="your-key-here"

Jetzt solltest du eine funktionierende Python-Umgebung mit allen installierten Abhängigkeiten und bereitstehendem API-Key haben.

Schritt 2: HTML der Zielseite abrufen

Nutze requests, um die Seite herunterzuladen. Für dieses Beispiel scrapen wir eine Produktseite:

1import requests
2url = "https://example.com/product/widget-pro"
3response = requests.get(url, headers={"User-Agent": "Mozilla/5.0"}, timeout=30)
4html = response.text

Wenn die Seite stark auf JavaScript-Rendering oder Anti-Bot-Schutz setzt, liefert requests.get() vielleicht nur eine leere Hülle oder einen 403-Fehler. In späteren Abschnitten gehen wir auf Gegenmaßnahmen ein — bei vielen öffentlichen Seiten funktioniert das aber problemlos.

Schritt 3: HTML bereinigen und in Markdown umwandeln

Das ist der Schritt, den die meisten Tutorials zwar erwähnen, aber nie beziffern. Rohes HTML einer typischen Produktseite liegt bei etwa 20.000 Tokens. Nach dem Aussortieren mit BeautifulSoup und der Markdown-Umwandlung landest du ungefähr bei 765–4.000 Tokens — also einer , die echtes Geld spart und Halluzinationen reduziert.

1from bs4 import BeautifulSoup
2from markdownify import markdownify
3soup = BeautifulSoup(html, "html.parser")
4main = soup.select_one("main") or soup  # nur den Inhaltsbereich nehmen
5markdown_content = markdownify(str(main))

Der Aufruf select_one("main") entfernt Header, Footer, Navigationsleisten und Skripte — also all den Lärm, der Tokens verschwendet und das Modell verwirrt. Falls die Seite kein <main>-Tag nutzt, probiere .product-detail, #content oder den jeweiligen Container um die eigentlichen Daten herum.

Nach diesem Schritt solltest du einen sauberen Markdown-String mit genau dem Seiteninhalt haben, der wirklich zählt.

Schritt 4: Datenschema definieren und an Gemini senden

Mit Pydantic definierst du, was du zurückbekommen willst. Das google-genai-SDK akzeptiert ein Pydantic-BaseModel direkt als response_schema:

1from google import genai
2from google.genai import types
3from pydantic import BaseModel
4class Product(BaseModel):
5    name: str
6    price: str
7    sku: str | None = None
8    description: str
9    sizes: list[str] = []
10    colors: list[str] = []
11client = genai.Client()  # liest GEMINI_API_KEY aus der Umgebung
12response = client.models.generate_content(
13    model="gemini-2.5-flash",
14    contents=f"Extrahiere die Produktdaten von dieser Seite:\n\n{markdown_content}",
15    config=types.GenerateContentConfig(
16        response_mime_type="application/json",
17        response_schema=Product,
18    ),
19)
20product = response.parsed
21print(product)

Ein paar Stolpersteine aus dem :

  • Verwende kein Field(default=...) in Schemata, die du an Gemini sendest — die API wirft sonst einen ValueError. Nutze stattdessen die Typdefinition sku: str | None = None.
  • Halte die Verschachtelung flach (maximal 3 Ebenen). Tief verschachtelte Schemata führen bei Flash und Flash Lite oft zu rekursivem Output oder nicht geschlossenen Klammern.
  • Markiere Felder als erforderlich, wenn du Flash Lite verwendest, und arbeite mit leeren Platzhalterstrings statt mit weggelassenen Feldern — Flash Lites Umgang mit optionalen Feldern ist .

Jetzt solltest du ein geparstes Product-Objekt mit strukturierten Seitendaten haben.

Schritt 5: Daten exportieren und speichern

Speichere das Ergebnis als JSON oder CSV:

1import json
2with open("products.json", "w") as f:
3    json.dump(product.model_dump(), f, indent=2)

Für die Weitergabe an Google Sheets kannst du die Bibliothek gspread nutzen. Für Datenbanken serialisierst du in das ORM deiner Wahl. Das strukturierte Gemini-Output ist sauber genug, um direkt in die meisten Downstream-Tools zu fließen.

Schritt für Schritt: Gemini Web Scraping ohne Code (mit Thunderbit)

Das ist der Weg für Business-User — oder Entwickler, die keine Wegwerf-Skripte schreiben möchten.

Bevor du startest:

  • Schwierigkeit: Anfänger
  • Zeitbedarf: ca. 5 Minuten für den ersten Scrape
  • Was du brauchst: Chrome-Browser, (Free-Tier reicht)

Schritt 1: Thunderbit Chrome Extension installieren

Gehe zum und klicke auf „Zu Chrome hinzufügen“. Melde dich mit deiner E-Mail an — der gesamte Prozess dauert weniger als eine Minute. Vergleiche das mit der 15- bis 30-minütigen Python-Einrichtung oben.

Schritt 2: Zielseite öffnen und auf „AI Suggest Fields“ klicken

Rufe die Website auf, die du scrapen möchtest — eine Produktliste, ein Immobilienverzeichnis, eine Lead-Datenbank, was auch immer. Klicke auf das Thunderbit-Symbol in der Browser-Leiste und dann auf „AI Suggest Fields“.

Die KI von Thunderbit liest die Seite und schlägt automatisch Spaltennamen und Datentypen vor — etwa „Product Name“, „Price“, „Rating“, „Image URL“. Du kannst Spaltennamen anpassen, unnötige Felder entfernen oder pro Spalte eigene KI-Prompts hinzufügen, zum Beispiel „als High/Medium/Low kategorisieren“ oder „ins Deutsche übersetzen“.

Vor dem eigentlichen Scraping solltest du eine Tabellenvorschau mit den konfigurierten Spalten sehen.

Schritt 3: Auf „Scrape“ klicken und Ergebnisse prüfen

Ein Klick. Thunderbit übernimmt die Pagination — sowohl über klassische „Next“-Buttons als auch über Infinite Scroll — und extrahiert die Daten in eine strukturierte Tabelle. Du kannst wählen zwischen:

  • Cloud Scraping: Schneller, verarbeitet bis zu 50 Seiten gleichzeitig. Funktioniert für öffentliche Seiten.
  • Browser Scraping: Läuft im aktuell eingeloggten Browser-Tab. Ideal für Seiten mit Login-Pflicht (CRMs, geschützte Verzeichnisse, interne Tools).

Die Ergebnisse erscheinen direkt in einer Tabelle in der Seitenleiste der Erweiterung. Prüfe sie vor dem Export auf offensichtliche Fehler.

Schritt 4: Nach Excel, Google Sheets, Airtable oder Notion exportieren

Klicke auf den Export-Button und wähle dein Zielformat. Thunderbit exportiert nach Excel, Google Sheets, Airtable und Notion — kostenlos und ohne Paywall. Bildfelder werden direkt in die Bildbibliotheken von Notion und Airtable hochgeladen, was besonders praktisch ist, wenn du Produktfotos oder Profilbilder scrapst.

Kein JSON-Parsen. Kein Skripting. Die Daten sind sofort einsatzbereit.

Multi-Page- und Subpage-Scraping mit Gemini

Die meisten Tutorials hören stillschweigend nach einer einzigen URL auf. Echte Scraping-Jobs tun das nicht.

500 Produktseiten mit Pagination und Detail-Unterseiten zu scrapen ist eine echte Aufgabe — und der Abstand zwischen einer Single-URL-Demo und dieser Realität ist enorm.

Pagination mit der Gemini API handhaben (Code-Ansatz)

Bei Seiten-URLs mit Seitennummern (das häufigste Muster) loopst du so lange durch die Seiten, bis du ein leeres Ergebnis bekommst:

1import time
2all_products = []
3for page in range(1, 101):  # bis zu 100 Seiten
4    url = f"https://example.com/products?page={page}"
5    md = fetch_clean(url)  # deine HTML→Markdown-Funktion von oben
6    response = client.models.generate_content(
7        model="gemini-2.5-flash-lite",  # günstig für Listing-Seiten
8        contents=f"Extrahiere Produktnamen und URLs:\n\n{md}",
9        config=types.GenerateContentConfig(
10            response_mime_type="application/json",
11            response_schema=list[ListingItem],
12        ),
13    )
14    items = response.parsed
15    if not items:
16        break
17    all_products.extend(items)
18    time.sleep(4)  # Free-Tier-Limits respektieren

Bei Cursor-basierten oder Infinite-Scroll-Seiten musst du den XHR-Endpunkt abfangen, den das Frontend aufruft (im Network-Tab deines Browsers nachsehen), und diesen Endpunkt direkt loopen. Das ist günstiger als jedes Mal neu zu rendern, und du schickst Daten nur dann an Gemini, wenn Felder durch ein LLM bereinigt werden müssen.

Behalte hier die Token-Kosten im Blick — jede Seite erhöht die Rechnung. Nutze Flash Lite für einfache Listing-Seiten und wechsle nur bei Detail-Extraktion zu Flash.

Subpages für reichhaltigere Daten scrapen (Code-Ansatz)

Das klassische Zwei-Stufen-Muster: Stufe 1 extrahiert aus einer Listing-Seite die URLs, Stufe 2 besucht jede Detailseite für umfangreichere Daten.

1# Stufe 1: URLs günstig mit Flash Lite einsammeln
2class Listing(BaseModel):
3    product_urls: list[str]
4listing = client.models.generate_content(
5    model="gemini-2.5-flash-lite",
6    contents=f"Extrahiere Produkt-URLs:\n{listing_md}",
7    config=types.GenerateContentConfig(
8        response_mime_type="application/json",
9        response_schema=Listing,
10    ),
11).parsed
12# Stufe 2: Details mit Flash extrahieren
13class ProductDetail(BaseModel):
14    name: str
15    price: str
16    specs: dict[str, str]
17    reviews: list[str]
18for url in listing.product_urls:
19    md = fetch_clean(url)
20    detail = client.models.generate_content(
21        model="gemini-2.5-flash",
22        contents=f"Extrahiere Produktdetails:\n{md}",
23        config=types.GenerateContentConfig(
24            response_mime_type="application/json",
25            response_schema=ProductDetail,
26        ),
27    ).parsed
28    # detail speichern...
29    time.sleep(0.5)

Das funktioniert, ist aber ziemlich viel Infrastruktur: Du brauchst URL-Deduplizierung, Fehlerbehandlung, Rate-Limits, Retry-Logik und Caching für rohes HTML, damit Schema-Änderungen nicht alles neu crawlen. Für 50 Seiten ist das machbar. Für 5.000 baust du bereits eine Plattform.

Die No-Code-Alternative: Integrierte Pagination und Subpage-Scraping mit Thunderbit

Thunderbit verarbeitet sowohl klickbasierte als auch Infinite-Scroll-Pagination automatisch — ohne Schleifen-Skripte. Für die Subpage-Anreicherung besucht die Funktion „Scrape Subpages“ jede verlinkte Detailseite und ergänzt die ursprüngliche Tabelle um tiefere Felder. Ein Klick statt eines Skripts.

Der Cloud-Scraping-Modus verarbeitet bis zu 50 Seiten gleichzeitig — ein spürbarer Vorteil bei Produktkatalogen oder Immobilienverzeichnissen in größerem Umfang. Für alle, die keine Python-Schleifen und Retry-Logik managen wollen, ist das die pragmatische Lösung. (Mehr dazu in unserem Leitfaden zum .)

Screenshot-Scraping: Geminis multimodaler Shortcut

Hier kommt ein Ansatz, den die meisten Tutorials komplett auslassen: Statt rohem HTML schickst du einen Screenshot einer Webseite an Geminis Vision-API. Ein Entwickler berichtete ein einzelner Screenshot nur rund 258 Tokens kostet — im Vergleich zu Tausenden selbst bei bereinigtem Markdown. Für einfache Extraktionen ist das ein enormer Kostenunterschied.

So nutzt du Geminis Vision-API für Web Scraping

Erstelle mit Playwright einen Screenshot, kodiere ihn und sende ihn an Gemini:

1from playwright.sync_api import sync_playwright
2from google import genai
3from google.genai import types
4from pydantic import BaseModel
5class Product(BaseModel):
6    title: str
7    price: str
8with sync_playwright() as p:
9    page = p.chromium.launch().new_page()
10    page.goto("https://example.com/product/widget-pro")
11    page.wait_for_load_state("networkidle")
12    png_bytes = page.screenshot(full_page=False)  # nur der sichtbare Bereich
13client = genai.Client()
14resp = client.models.generate_content(
15    model="gemini-2.5-flash",
16    contents=[
17        {"inline_data": {"mime_type": "image/png", "data": png_bytes}},
18        "Extrahiere Produkttitel und Preis als JSON.",
19    ],
20    config=types.GenerateContentConfig(
21        response_mime_type="application/json",
22        response_schema=Product,
23    ),
24)
25print(resp.parsed)

Laut Googles kostet ein Bild, bei dem beide Seiten höchstens 384 Pixel messen, 258 Tokens. Größere Bilder werden in 768×768-Blöcke zerlegt, wobei jeder Block 258 Tokens kostet. Ein kurzer Screenshot oberhalb der Falz (258–1.600 Tokens) ist damit deutlich günstiger als rohes HTML — aber ein sehr hoher Full-Page-Screenshot (~5.000 Tokens) kann gegenüber sauberem Markdown (~765–1.200 Tokens) tatsächlich verlieren.

Grenzen des Screenshot-Scrapings

  • Geringere Präzision bei dichten Tabellen: Mehrspaltige Layouts, kleine Schrift und überlappende Elemente führen zu teilweisen Auslesefehlern — nicht unbedingt Halluzinationen, sondern übersehene Labels und verschobene Überschriften.
  • Keine Links verfolgen: Vision gibt Text zurück, aber keine klickbaren Anker. Keine Pagination, keine Subpage-Anreicherung.
  • Auflösungsgrenze: Text kleiner als etwa 10 px wird oft falsch gelesen. Google skaliert auf der längsten Kante auf ungefähr 1.568 px herunter.
  • Capture-Overhead: Der Start von Playwright plus networkidle-Warten kostet pro Seite 2–5 Sekunden, was sich im großen Maßstab summiert.

Screenshot-Scraping glänzt bei stark JS-lastigen Seiten, bei Bot-geschützten Websites (wenn requests.get() einen 403 liefert, ein Browser die Seite aber normal rendert) und bei Seiten mit Daten in Diagrammen oder Bildern. Für lange, textlastige Seiten bleibt Markdown die bessere Wahl.

Thunderbits Bild- und PDF-Scraping nutzt einen ähnlichen AI-Vision-Ansatz — du lädst einfach ein Bild oder PDF hoch und erhältst eine strukturierte Tabelle, ganz ohne Screenshot-Skripte oder Base64-Umwege. (Siehe auch: .)

Wann Gemini Web Scraping scheitert und was du stattdessen tun solltest

Gemini ist eine Extraktions-Engine, keine Fetching-Engine. Wenn du den Seiteninhalt nicht zu Gemini bekommst, kann es dir nicht helfen. Punkt.

Es gibt mehrere typische Szenarien, in denen der gesamte Ansatz scheitert — und die meisten Tutorials behandeln das erst am Schluss. Ich sage es lieber direkt.

EinschränkungWas passiertGegenmaßnahme
Anti-Bot / CloudflareAPI-Anfragen werden blockiert; requests.get() liefert 403 oder eine Challenge-SeiteProxies mit TLS-Fingerprint-Rotation nutzen oder browserbasierte Tools einsetzen (Thunderbits Browser-Scraping-Modus verwendet deine eingeloggte Sitzung)
Grenzen des Token-FenstersGroße Seiten sprengen den nutzbaren Kontext (~200K–300K für zuverlässige Extraktion, auch wenn technisch 1M unterstützt wird)HTML→Markdown-Bereinigung, Seiten aufteilen oder Screenshots verwenden
Halluzinationen bei visuellen InhaltenGemini rät aus Alt-Text oder Captions statt den tatsächlichen BildinhaltenAusgaben validieren; für Bilddaten explizit die Vision-API nutzen; Grounding-Validatoren ergänzen
API-Rate-LimitsBei hoher Last gedrosselt — Free-Tier liegt bei ca. 100 RPD für Pro und 1.000 RPD für Flash LiteWarteschlangen, Batching (50 % Rabatt) oder vorgefertigte Tools verwenden
Inkonsistente Extraktion (Lite-Modelle)Optionale Felder, Zeitstempel und verschachtelte Daten werden übersehen oder erfundenAuf Flash/Pro upgraden oder explizite Schema-Constraints hinzufügen
Geschützte Seiten (LinkedIn usw.)Liefert Fehler oder leere DatenBrowserbasiertes Scraping mit aktiver Sitzung (Thunderbit unterstützt das); Nutzungsbedingungen beachten

Ein paar dieser Punkte verdienen zusätzlichen Kontext.

Anti-Bot ist heute aktiv LLM-bewusst. Cloudflare seit Juli 2025; in den ersten fünf Monaten wurden 416 Milliarden KI-Bot-Anfragen blockiert. Datadome hat 2025 LLM-spezifische Erkennung eingeführt und stellte fest, dass der LLM-Bot-Traffic sich vervierfacht hat. Ein simples requests.get() plus Gemini ist gegen Datadome-geschützte Seiten praktisch erledigt. Das Problem ist der Fingerprint, nicht die IP — ein reines IP-Rotieren bringt nichts, wenn der TLS-Fingerprint laut „Python requests“ schreit.

Halluzinationen sind subtil. LLMs, die darauf trainiert sind, hilfreich zu sein, füllen optionale Felder lieber mit plausiblen Erfindungen, statt null zurückzugeben. Ich habe gesehen, wie Modelle die Marke eines Produkts aus dem URL-Slug ableiteten, die Währung aus der TLD schlossen und plausible, aber falsche Bewertungszahlen aus Skeleton-Loadern erzeugten. Die Gegenmaßnahmen: strikte Pydantic-Schemata, Retry-Schleifen mit Validierungsfeedback, Grounding-Validatoren, die prüfen, ob extrahierte Werte tatsächlich im Quell-HTML vorkommen, und (Flash extrahiert, Pro validiert eine Stichprobe).

Das 1M-Token-Fenster ist nicht wirklich bis 1M nutzbar. und anderen zeigt, dass die Denkqualität schon lange vor dem formalen Token-Limit nachlässt. Für strukturierte Extraktion solltest du etwa 200K–300K Tokens als praktische Obergrenze ansehen.

Entscheidungshilfe: Welches Tool solltest du verwenden?

  • Wenig Volumen + einfache Seiten + Entwickler → Gemini API Free-Tier + Python
  • Mittleres Volumen + komplexe Schemata + Entwickler → Gemini 2.5 Flash kostenpflichtig + Python + strukturierte Ausgabe + Vorverarbeitung
  • Beliebiges Volumen + kein Entwickler + Login-Sperren oder viel Pagination
  • Sehr hohes Volumen + starker Anti-Bot-Schutz + geschäftskritisch → Verwaltete Scraping-Infrastruktur (Proxy-Dienste) + Gemini als Extraktionsschicht

Gemini Web Scraping: Tipps, um Zeit und Geld zu sparen

Egal ob du Python schreibst oder Buttons klickst — diese Hinweise ersparen dir viel Ärger.

  1. Bereite HTML immer zuerst zu Markdown auf, bevor du es an Gemini sendest. sind üblich; mit zusätzlichem Vorsortieren per BeautifulSoup sind auch 95 % möglich.
  2. Nur google-genai verwenden. Nutze nicht das veraltete Paket google-generativeai — es ist EOL.
  3. Starte mit Flash Lite nur bei flachen Schemata. Wechsle sofort zu Flash, sobald Verschachtelung oder optionale Felder auftauchen.
  4. Vermeide Field(default=...) in Pydantic-Schemata, die du an Gemini übergibst. Nutze stattdessen die Typdefinition sku: str | None = None.
  5. Pydantic + response_schema ist entscheidend — es ist gleichzeitig Vertrag und Halluzinationsschutz.
  6. Nutze die für Jobs mit über 1.000 Seiten — 50 % günstiger und ohne Belastung der Echtzeit-RPM.
  7. Prüfe eine zufällige Stichprobe von 10–50 Zeilen manuell, bevor du einen neuen Extraktor skalierst. Genauigkeitsdrift bleibt sonst unsichtbar.
  8. Cache rohes HTML auf der Festplatte — Schema-Änderungen sollten keine erneuten Abrufe erzwingen.
  9. Speichere bei jeder Zeile die Quell-URL, damit du einzelne Seiten erneut crawlen kannst, ohne den gesamten Job neu zu starten.
  10. Für No-Code-Nutzer: Nutze benutzerdefinierte KI-Prompts pro Spalte in Thunderbit, um Prompt Engineering auf Tabellenebene zu verlagern — übersetzen, kategorisieren, zusammenfassen direkt pro Spalte.

Und noch etwas: Schicke das Free-Tier nicht in die Produktion. Die Limits wurden im Dezember 2025 um 50–80 % gesenkt und könnten ohne Vorwarnung erneut gekürzt werden.

Fazit

Der Abstand zwischen einer einzelnen Gemini-Demo-URL und einer produktionsreifen Pipeline ist größer, als die meisten Tutorials vermuten lassen.

Der Weg über Python + Gemini API gibt Entwicklern volle Kontrolle über Modellwahl, Vorverarbeitung, Pagination und Schema-Design. Der No-Code-Weg — mit Tools wie — liefert Business-Usern dieselbe strukturierte Extraktion, ohne dass ein Terminal nötig ist.

Das würde ich für mich mitnehmen:

  • Die Modellwahl ist entscheidend. Flash Lite für Masse, Flash für Balance, Pro für Komplexität. Nicht einfach das billigste Modell nehmen und sich dann über falsche Daten wundern.
  • Multi-Page- und Subpage-Scraping ist die Stelle, an der Tutorials oft scheitern — und genau dort passiert in der Praxis die eigentliche Arbeit. Beide Wege hier schließen diese Lücke.
  • Ehrliche Grenzen sparen Zeit. Wenn eine Website API-Anfragen blockiert, hilft auch das beste Prompt Engineering nicht. Nimm das richtige Werkzeug, nicht das schickste.
  • HTML in Markdown umzuwandeln ist die Optimierung mit dem größten Hebel — sie senkt die Kosten um mehr als 75 % und reduziert Halluzinationen.

Wenn du den No-Code-Weg ausprobieren möchtest, kannst du mit ein paar Seiten scrapen und die Ergebnisse selbst sehen. Wenn du lieber codest, reicht das kostenlose Gemini-API-Tier, um an einem Nachmittag eine Pipeline zu prototypen. In beiden Fällen hast du strukturierte Daten deutlich schneller, als Copy-Paste es jemals ermöglichen würde. Mehr zum oder zu findest du ebenfalls ausführlich in unserem Blog.

Thunderbit für AI Web Scraping testen

FAQs

Wie viel kostet Gemini für Web Scraping?

Die Gemini API hat ein Free-Tier mit ungefähr 100 Anfragen pro Tag für Pro, 500 pro Tag für Flash und 1.000 pro Tag für Flash Lite (Stand Anfang 2026 — diese Limits wurden im Dezember 2025 reduziert). In der kostenpflichtigen Nutzung kostet das Scrapen von 10.000 Produktseiten ungefähr 1,50 $ mit Flash Lite, 6 $ mit Flash oder 25 $ mit Pro — vorausgesetzt, du wandelst HTML zuerst in Markdown um. Ohne Vorverarbeitung steigen die Kosten um das 4- bis 5-Fache. Die Batch API bietet einen 50-%-Rabatt für Jobs ohne Echtzeit-Anforderungen.

Kann Gemini Websites scrapen, die ein Login erfordern?

Die Gemini API allein kann sich nicht auf Websites einloggen — sie verarbeitet nur den Inhalt, den du sendest. Du musst das HTML selbst mit deiner eigenen authentifizierten Sitzung abrufen (zum Beispiel mit einem Headless-Browser und gespeicherten Cookies). Thunderbits Browser-Scraping-Modus erledigt das nativ: Er läuft in deinem eingeloggten Chrome-Tab, sodass jede Website, die du im Browser sehen kannst, auch von Thunderbit gescraped werden kann.

Die Rechtmäßigkeit hängt von den Nutzungsbedingungen der Website, der Art der Daten und deiner Jurisdiktion ab. In den USA gilt nach hiQ v. LinkedIn und Meta v. Bright Data das Scrapen öffentlich zugänglicher Daten ohne Login grundsätzlich als eher zulässig — dennoch ist jeder Fall individuell. Scraping hinter einem Login ist rechtlich riskanter. Persönliche Daten von EU-Bürgern unterliegen unabhängig davon, ob die Seite öffentlich ist, der DSGVO. Beachte immer robots.txt und die Nutzungsbedingungen und vermeide Scraping personenbezogener Daten ohne rechtliche Grundlage.

Kann ich Gemini für dynamische, stark JavaScript-lastige Seiten verwenden?

Ja, aber du musst das JavaScript zuerst rendern — entweder mit einem Headless-Browser (Playwright, Puppeteer) oder indem du direkt die API-Endpunkte der Website abfängst. Sobald du das gerenderte HTML hast, bereinigst du es und schickst es wie gewohnt an Gemini. Alternativ umgeht Screenshot-Scraping mit Geminis Vision-API das JS-Rendering vollständig — wenn es im Browser sichtbar ist, kann Gemini es sehen. Thunderbit verarbeitet JS-gerenderte Seiten automatisch sowohl im Cloud- als auch im Browser-Scraping-Modus.

Was ist der Unterschied zwischen Gemini als Scraping-Tool und einem spezialisierten Scraper wie Thunderbit?

Gemini ist eine Extraktions-Engine — es interpretiert Inhalte und gibt strukturierte Daten zurück. Es besucht keine Websites, verwaltet keine Pagination, übernimmt keine Authentifizierung und exportiert nicht direkt in Tabellen. Du brauchst also weiterhin etwas, das den Seiteninhalt zu Gemini bringt, und etwas, das mit der Ausgabe weiterarbeitet. Spezialisierte Tools wie kombinieren Abruf, Rendering, KI-Extraktion, Pagination, Subpage-Anreicherung und Export in einem Paket — ohne technischen Unterbau.

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.
Inhaltsverzeichnis

Teste Thunderbit

Leads und andere Daten in nur 2 Klicks scrapen. Unterstützt durch 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