Tony Wang4 Min. LesezeitGoogle Scholar scrapen 2026 (Python & API)
Google-Scholar-Ergebnisse sammeln — Titel, Autoren, Zitationszahlen, Links — trotz fehlender API, plus warum Scholar Scraper blockiert und was funktioniert.
Google Scholar hat keine offizielle API und ist eine der schwierigeren Google-Oberflächen, die man in nennenswertem Umfang erheben kann — automatisierten Traffic quittiert Scholar schnell mit CAPTCHAs und IP-Sperren. Der praktikable Weg 2026 ist, Scholars öffentliche Ergebnisseiten über eine Scraping-API abzurufen, die Proxys und Rendering übernimmt, und dann die Felder zu parsen, die du brauchst. Dieser Guide zeigt, warum der DIY-Weg kaputtgeht und wie es zuverlässig gelingt.
Gibt es 2026 eine offizielle Google-Scholar-API?
Nein — und das gab es auch noch nie. Anders als Search (das die eingeschränkte Custom Search JSON API hat) oder Maps hat Google nie eine Scholar-API angeboten, weder öffentlich noch zugangsbeschränkt. Das Custom-Search-Produkt deckt Scholar ausdrücklich nicht ab. Es gibt also keinen sanktionierten, strukturierten Weg, Scholar programmatisch abzufragen; jede Option — die scholarly-Bibliothek, ein Headless-Browser oder eine Scraping-API — ruft das öffentliche HTML ab und parst es.
Ist es legal, Google Scholar zu scrapen?
Scholar indexiert öffentliche wissenschaftliche Metadaten, und das Sammeln öffentlicher Daten wird in der Regel anders behandelt als der Zugriff auf private Konten — bedingungslos ist es aber nicht:
- Sammle nur öffentliche Ergebnisdaten; keine login-geschützten oder hinter einer Paywall liegenden Volltexte.
- Halte Rate Limits ein — Scholars Abwehrmechanismen dienen teils dem Schutz des Dienstes, also drossle Requests und cache.
- Bibliografische Metadaten (Titel, Autoren, Zitationszahlen) sind breit wiederverwendbar, aber prüfe Googles Bedingungen und dein lokales Recht, bevor du sie kommerziell weiterverbreitest.
Das ist keine Rechtsberatung — Details findest du in Ist Web Scraping 2026 legal?.
Option 1: DIY in Python (und warum es kaputtgeht)
Die bekannteste DIY-Bibliothek ist scholarly, die das Scholar-Frontend parst:
from scholarly import scholarly
for i, pub in enumerate(scholarly.search_pubs("retrieval augmented generation")):
print(pub["bib"]["title"], pub.get("num_citations"))
if i >= 9:
break
Es funktioniert für ein paar Abfragen, dann ist Schluss. Die wiederkehrenden Schmerzpunkte:
- CAPTCHA-Wände, und zwar schnell — Scholar zeigt nach einer Handvoll automatisierter Requests von einer IP ein reCAPTCHA;
scholarlydokumentiert sogar, dass man Proxys oder einen CAPTCHA-Lösungsdienst braucht, um weiterzumachen. - IP-Sperren — Rechenzentrums-IPs werden schnell blockiert; für nennenswertes Volumen brauchst du rotierende residentielle Proxys.
- Keine Paginierungsgarantien — Scholar begrenzt, wie tief du blättern kannst, und ordnet Ergebnisse um, sodass tiefe Ergebnismengen unzuverlässig sind.
- Fragiles Parsing — das HTML ist unversioniert und ändert sich ohne Vorwarnung.
Option 2: No-Code- und fertige Tools
Literaturverwaltungsprogramme und Browser-Tools können ein, zwei Zitationen abgreifen, geben dir aber nicht die zugrunde liegende Ergebnismenge — Titel, Autoren, Zitationszahlen und Links — in einer strukturierten Form, die du speichern, joinen oder planen kannst. Für eine Pipeline oder ein Produkt willst du geparste Daten.
Option 3: Scholar über eine Scraping-API leiten
Da es nirgends einen Scholar-Endpoint gibt, ist der verlässliche Ansatz, die öffentliche Scholar-Ergebnis-URL über einen allgemeinen Web-Scraping-Endpoint abzurufen, der residentielle IPs rotiert und die Seite rendert, und dann die Ergebnisse zu parsen — Proxys, Retries und Anti-Bot-Handling werden dir abgenommen:
curl -X POST "https://api.crawlora.net/api/v1/web/scrape" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://scholar.google.com/scholar?q=retrieval+augmented+generation"}'
import requests
from bs4 import BeautifulSoup
h = {"x-api-key": "YOUR_API_KEY"}
q = "retrieval augmented generation"
url = f"https://scholar.google.com/scholar?q={q.replace(' ', '+')}"
# fetch the rendered HTML through the scraping API (handles proxies + anti-bot)
resp = requests.post("https://api.crawlora.net/api/v1/web/scrape",
headers=h, json={"url": url}).json()
html = resp["data"]["html"] # field is illustrative — confirm in the docs
soup = BeautifulSoup(html, "html.parser")
for item in soup.select("div.gs_ri"):
title = item.select_one("h3.gs_rt")
cited = item.select_one("a:-soup-contains('Cited by')")
print(title.get_text(strip=True) if title else "",
cited.get_text(strip=True) if cited else "Cited by 0")
Weil die Scraping-API die IP-Rotation und die CAPTCHA-auslösenden Fingerprints übernimmt, verbringst du deine Zeit damit, die Felder zu parsen, die dich interessieren — Titel, Autoren und Publikationsort, Zitationszahl und den Ergebnislink —, statt gegen die Blockade zu kämpfen.
Was du sammeln kannst
- Ergebnistitel, Autoren, Publikationsort und Jahr
- Die Zitationszahl („Cited by N“) und Links zu zitierenden Arbeiten
- Der Link zum Paper oder seiner Landing-Page, plus PDF-Links, wo Scholar sie anzeigt
- Die Ergebnisposition, nützlich, um die Sichtbarkeit eines Papers für eine Abfrage über die Zeit zu verfolgen
Grenzen und häufige Herausforderungen
- Aggressives Blockieren. Scholar wehrt sich hart mit CAPTCHA und IP-Sperren; halte selbst über eine Scraping-API die Request-Raten moderat und cache Ergebnisse.
- Keine strukturierte API bedeutet fragiles Parsing. Du parst HTML, also kapsle Selektoren defensiv und rechne mit gelegentlichen Layout-Änderungen.
- Flache, umsortierte Paginierung. Scholar begrenzt die Ergebnistiefe und sortiert nach Relevanz um; behandle einen Abzug als gerankte Stichprobe, nicht als vollständigen Index.
- Zitationszahlen sind ungefähr und hinken hinterher. Googles „Cited by“-Zahlen aktualisieren sich nach Googles Zeitplan und können von anderen Zitationsdatenbanken abweichen.
Quellen
Wo das hineinpasst
Probier es zuerst, kostenlos: jag eine Scholar-Ergebnis-URL durch den Free Web Scraper oder prüfe mit dem Anti-Bot Checker, wie hart ein Ziel Bots blockiert — ohne Anmeldung.
Scholar ist ein Hard-Target-Fall des allgemeinen Musters: keine API, starkes Anti-Bot, also leitest du den Abruf durch einen Unblocker und parst. Für das breitere Toolkit und angrenzende Suchquellen siehe wie man Google Trends scrapt, wie man Brave Search scrapt und wie man eine Web Scraping API auswählt. Warum ein einfaches Skript überhaupt blockiert wird, erklärt dein Scraper läuft lokal, gibt auf dem Server aber 403 zurück.
Leg los, indem du den Endpoint im Playground testest, das Request- und Response-Schema in den API-Docs liest und die Credit-Kosten auf der Preisseite prüfst.
Häufig gestellte Fragen
Gibt es eine Google Scholar API?
Nein, und das gab es auch noch nie. Anders als Search, das die eingeschränkte Custom Search JSON API hat, hat Google nie eine Scholar-API angeboten, weder öffentlich noch zugangsbeschränkt, und das Custom-Search-Produkt deckt Scholar ausdrücklich nicht ab. Jede Option — die scholarly-Python-Bibliothek, ein Headless-Browser oder eine Scraping-API — ruft Scholars öffentliches HTML ab und parst es.
Wie scrape ich Google Scholar, ohne blockiert zu werden?
Scholar wirft nach einer Handvoll automatisierter Requests von einer IP ein reCAPTCHA und IP-Sperren, sodass DIY-Skripte schnell ins Stocken geraten. Der praktikable Ansatz ist, Scholars öffentliche Ergebnis-URLs über eine Scraping-API abzurufen, die residentielle IPs rotiert und die CAPTCHA-auslösenden Fingerprints übernimmt, und dann Titel, Autoren, Zitationszahlen und Links aus dem zurückgegebenen HTML zu parsen. Halte die Request-Raten selbst dann moderat und cache die Ergebnisse.
Ist es legal, Google Scholar zu scrapen?
Scholar indexiert öffentliche wissenschaftliche Metadaten, und das Sammeln öffentlicher Daten wird in der Regel anders behandelt als der Zugriff auf private Konten, bedingungslos ist es aber nicht. Sammle nur öffentliche Ergebnisdaten (keine Volltexte hinter einer Paywall), halte Rate Limits ein und prüfe Googles Bedingungen und dein lokales Recht, bevor du kommerziell weiterverbreitest. Bibliografische Metadaten wie Titel, Autoren und Zitationszahlen sind breit wiederverwendbar. Das ist keine Rechtsberatung.