Tony Wang6 Min. LesezeitGoodreads in 2026 scrapen (API & Python)
Goodreads 2026 scrapen — Bücher, Ratings, Rezensionen, Autoren und Listen per DIY, No-Code oder API, seit Amazon die API abgeschaltet hat.
Am schnellsten scrapst du Goodreads 2026, indem du eine strukturierte API aufrufst, die normalisiertes JSON zurückgibt — Book-Details, Ratings, Rezensionen, Autoren-Profile und List-Rankings — statt Goodreads' HTML selbst zu parsen. Das zählt hier mehr als bei den meisten anderen Plattformen dieser Serie: Amazon hat die Goodreads Developer API im Dezember 2020 für neue Antragsteller geschlossen, es gibt also keinen offiziellen, kostenpflichtigen oder Enterprise-Weg zurück. Dieser Guide deckt DIY, No-Code und eine strukturierte API ab, plus die rechtliche Realität gleich zu Beginn.
Warum Goodreads scrapen?
Goodreads ist der größte öffentliche Book-Rating- und Rezensions-Datensatz im Web — das treibt an:
- Book-Katalog-Anreicherung — kanonischen Title, Autor, Rating und Genre-Daten an eine Reading-App oder einen internen Datensatz anhängen.
- Empfehlung & Discovery — „ähnliche Bücher"- oder genre-basierte Empfehlungsfeatures aus Rating- und Regal-Daten bauen.
- Rezeptions-Recherche — verfolgen, wie sich das Durchschnitts-Rating und Rezensionsvolumen eines Buchs nach Release oder einer Medien-Adaption entwickeln.
- Autoren- & Bibliografie-Tracking — die komplette Bibliografie, Zitate und Leserstimmung eines Autors über die Zeit verfolgen.
- List- & Trend-Monitoring — Listopia-Rankings und Genre-Regale beobachten, um zu sehen, was Leser wirklich lesen.
Ist es legal, Goodreads zu scrapen?
Option 1: DIY in Python (und warum das scheitert)
Da es keine API gibt, heißt ein DIY-Ansatz, Goodreads' serverseitig gerenderte Book-, Autoren- und Rezensionsseiten direkt zu parsen:
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.goodreads.com/book/show/2767052-the-hunger-games",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Rating, review count, and description live in a mix of embedded JSON
# and page markup that shifts across Goodreads' redesigns
Es funktioniert in der Demo und geht dann kaputt:
- robots.txt blockiert aktiv zentrale Pfade. Goodreads' Standard-User-Agent-Regeln sperren unter anderem
/search,/review/show,/apiund/work— ein naiver Crawler, der normal navigiert, stolpert schnell darüber. - Kein stabiles Markup, und keine API zum Ausweichen. Goodreads' Seitenstruktur verschiebt sich mit jedem Redesign, und anders als bei den meisten Plattformen dieser Serie gibt es keinen offiziellen Endpoint, auf den du wechseln kannst, wenn das Scraping kaputtgeht.
- Anti-Bot auf Amazon-Niveau. Goodreads gehört seit 2013 zu Amazon und läuft hinter Amazon-tauglicher Infrastruktur — Rechenzentrums-IPs und naive Clients werden ratenbegrenzt oder blockiert.
- Rezensionen und Editions paginieren getrennt. Die vollständige Rezensionsliste eines Buchs und seine vollständige Editions-Liste liegen jeweils auf eigenen paginierten Unterseiten, ein einzelner Seitenaufruf liefert also nie einen kompletten Datensatz.
Option 2: No-Code-Tools
Manche No-Code-Scraper-Marktplätze und Browser-Extensions bieten fertige Goodreads-Templates für einmalige Exporte — nützlich für eine einzelne Leseliste oder eine kleine Menge Titles. Für ein Hobbyprojekt sind sie ein vernünftiger Notbehelf, aber umständlich im Zeitplan zu betreiben, liefern keinen sauberen Datenvertrag und tragen dasselbe ToS- und Anti-Bot-Risiko wie ein DIY-Skript, weil sie darunter dieselben Seiten scrapen.
Option 3: Eine strukturierte Goodreads-API
Für einen wiederholbaren, berechtigungsscharfen Workflow liefert eine Goodreads scraping API normalisiertes JSON, ohne dass du Seiten-Parsing pflegen oder auf ein totes Developer-Programm warten musst. Suche ein Buch, um seine id zu bekommen:
curl "https://api.crawlora.net/api/v1/goodreads/search?q=hunger+games" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "hunger games",
"results": [
{
"id": "2767052",
"title": "The Hunger Games",
"author": "Suzanne Collins",
"author_id": "153394",
"average_rating": 4.35,
"ratings_count": 10177818,
"pages": 374,
"uri": "https://www.goodreads.com/book/show/2767052-the-hunger-games"
}
]
}
}
Löse dann die id auf und hole Book-Details, Rezensionen und Autoren-Daten in Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/goodreads"
hits = requests.get(f"{base}/search", headers=h, params={"q": "hunger games"}).json()["data"]["results"]
book_id, author_id = hits[0]["id"], hits[0]["author_id"]
book = requests.get(f"{base}/book/{book_id}", headers=h).json()["data"]
reviews = requests.get(f"{base}/book/{book_id}/reviews", headers=h, params={"limit": 20}).json()["data"]
author = requests.get(f"{base}/author/{author_id}", headers=h).json()["data"]
Book-Details kommen als normalisiertes JSON zurück (echte Felder — prüfe die docs):
{
"code": 200,
"msg": "OK",
"data": {
"id": "2767052",
"title": "The Hunger Games",
"series": "The Hunger Games #1",
"genres": ["Young Adult", "Dystopia", "Fiction"],
"pages": 374,
"publisher": "Scholastic Press",
"publication_date": "2008-10-14",
"isbn13": "9780439023481",
"rating": {
"average": 4.35,
"ratings_count": 10177796,
"reviews_count": 272857,
"distribution": { "one_star": 133619, "five_star": 5602217 }
}
}
}
Autoren-Profile liefern Bio, Genres und aggregiertes Rating; Autoren-Bibliografien, Zitate und Listopia-Listen folgen jeweils demselben Muster: id rein, normalisiertes JSON raus:
{
"data": {
"id": "153394",
"name": "Suzanne Collins",
"birth_date": "August 11, 1962",
"genres": ["Fiction", "Science Fiction & Fantasy", "Young Adult"],
"average_rating": 4.3,
"ratings_count": 21497265
}
}
/goodreads/author/{id}/books blättert durch die komplette Bibliografie eines Autors, /goodreads/book/{id}/editions liefert jede Edition eines Werks (Format, Verlag, ISBN, Erscheinungsdatum), /goodreads/genre/{name} liefert die Top-Books eines Genre-Regals, und /goodreads/list/{id} liefert ein Listopia-Ranking. Speichere eine Zeile pro Book (oder pro Rezension, pro Edition) und lauf die gleichen Calls nach Zeitplan erneut.
Was du sammeln kannst
Öffentliche Book-, Autoren- und List-Metadaten: Suchergebnisse (id, Title, Autor, Rating, Seitenzahl); Book-Details (Beschreibung, Series, Genres, Format, Verlag, Erscheinungsdatum, ISBN/ISBN13, Rating-Durchschnitt und -Verteilung); Book-Editions über alle Formate; öffentlich sichtbare Book-Rezensionen (Rezensent, Rating, Text, Like-/Comment-Zahlen); Autoren-Profile (Bio, Geburtsdatum, Genres, aggregiertes Rating); die komplette Booklist eines Autors; Autoren-Zitate; Genre-/Regal-Rankings; und Listopia-List-Rankings. Nur öffentliche Daten — keine privaten Regale, kein Lesefortschritt, keine Account-Level-Informationen.
Grenzen und typische Herausforderungen
- Kein API-Fallback vorhanden. Anders als bei den meisten Plattformen dieser Serie gibt es keinen offiziellen Endpoint, auf den du wechseln kannst, wenn ein Scraping-Ansatz kaputtgeht — Goodreads hat sein Developer-Programm 2020 eingestellt und nie wieder geöffnet.
- robots.txt und ToS schränken beide automatisierten Zugriff ein. Beschränke jedes Projekt auf öffentliche Book-, Rating- und Rezensionsseiten, meide gesperrte Pfade und veröffentliche nie komplette Rezensionstexte in großem Stil weiter.
- Anti-Bot auf Amazon-Niveau. Rechne mit Rate-Limiting und Blockaden bei naiven Requests oder Rechenzentrums-IPs.
- Fan-out pro Book. Vollständige Rezensionen und Editions paginieren jeweils getrennt, ein kompletter Book-Datensatz bedeutet also mehrere Calls statt einem.
- Nur öffentliche Daten. Das sammelt, was Goodreads bereits öffentlich zeigt — nie ein Weg um eine Login-Sperre oder private Regal-Daten herum.
Wo das eingesetzt wird
- Reading-App-Kataloge — kanonischen Title, Autor und Rating-Daten an ein Book-Discovery- oder -Tracking-Produkt anhängen.
- Empfehlungs-Engines — „ähnliche Bücher"- und genre-basierte Discovery aus Rating- und Regal-Mustern antreiben.
- Publishing- & Rezeptions-Recherche — Rating- und Rezensions-Trends für einen Title rund um Launch oder Adaptions-News verfolgen.
Sources
Leg los mit dem Sammeln
Probier es zuerst kostenlos aus: jage eine beliebige öffentliche URL durch den Free Web Scraper oder prüfe mit dem Anti-Bot Checker, ob eine Seite Bots blockiert — ohne Anmeldung.
Teste die Search-, Book- und Author-Endpoints im Playground, sieh dir das Schema in den API docs an und wirf einen Blick aufs pricing. Goodreads ist das Muster „kreatives Werk + öffentliche Rezensionen" für Bücher — dasselbe Muster, das IMDb für Film und TV abdeckt und Discogs für Musik. Wenn du Rezeption über Bücher hinaus verfolgst, deckt how to scrape Trustpilot reviews dasselbe Rating-/Rezensions-Muster für Unternehmen ab. Siehe auch how to choose a web scraping API und is web scraping legal.
Häufig gestellte Fragen
Wie scrape ich Goodreads?
Sende eine Suchanfrage oder eine Goodreads-id an eine strukturierte Goodreads-API und erhalte Book-Details, Ratings, Rezensionen, Autoren-Profile und List-Rankings als JSON — kein Login und kein HTML-Parsing nötig.
Hat Goodreads eine öffentliche API?
Nein. Amazon hat am 8. Dezember 2020 aufgehört, neue Goodreads-Developer-API-Keys auszustellen, und baut das Programm seither ab — es gibt keinen aktuellen, legalen Weg zu einer offiziellen Goodreads-API, egal zu welchem Preis.
Ist es legal, Goodreads zu scrapen?
Goodreads' Nutzungsbedingungen und robots.txt schränken beide automatisierte Datensammlung ein. Da es keine offizielle API gibt, ist eng begrenztes Scraping öffentlicher Book-, Rating- und Rezensionsseiten unter Beachtung dieser Einschränkungen die einzige programmatische Option; hol dir für großangelegte kommerzielle Nutzung eine schriftliche Genehmigung.
Kann ich Goodreads-Book-Ratings und -Rezensionen bekommen?
Ja — der Book-Details-Endpoint liefert das Durchschnitts-Rating und die vollständige Rating-Verteilung, und der Reviews-Endpoint liefert öffentlich sichtbare Rezensionen mit Rezensent, Rating, Text und Like-/Comment-Zahlen.
Kann ich die komplette Bibliografie eines Autors von Goodreads scrapen?
Ja — der Author-Books-Endpoint blättert durch jedes Book, das einer Autoren-id zugeschrieben ist, zusammen mit Profil-Bio, Genres und aggregiertem Rating.
Was bekomme ich beim Goodreads-Scraping nicht?
Nur öffentliche Daten sind verfügbar — keine privaten Regale, kein Lesefortschritt, keine Account-Level-Informationen, und kompletter Rezensionstext sollte nie in großem Stil weiterveröffentlicht werden.
Was unterscheidet Goodreads-Scraping von IMDb oder Discogs?
Alle drei folgen demselben Muster „kreatives Werk plus öffentliche Rezensionen" — IMDb für Film/TV, Discogs für Musik, Goodreads für Bücher — aber Goodreads ist in dieser Serie einzigartig, weil es seit 2020 überhaupt keinen offiziellen API-Fallback mehr gibt.