Wenn Google jährlich 60 Millionen US-Dollar für eine Reddit-Datenlizenz hinlegt und OpenAI angeblich sogar 70 Millionen US-Dollar zahlt, dann sagt das eine Menge darüber aus, was in diesen Kommentar-Threads steckt. Wer schon einmal versucht hat, Diskussionen, Kommentare oder Stimmungsdaten von Hand aus Reddit herauszuziehen, kennt die Mühe: endloses Scrollen, ein Copy-Paste-Marathon und am Ende ein Browser voller offener Tabs.
Im vergangenen Quartal habe ich viel Zeit damit zugebracht, unserem Team bei Thunderbit dabei zu helfen, herauszufinden, wie sich Reddit-Daten 2025 wirklich extrahieren lassen. Seit Reddit die Preise seiner API 2023 neu aufgestellt hat, hat sich einiges verschoben, und die meisten Anleitungen im Netz sind entweder veraltet oder beschränken sich auf einen einzigen Weg. Deshalb habe ich zusammengetragen, was heute tatsächlich funktioniert: vier verschiedene Ansätze, vom kompletten Python-Skript bis zur Extraktion ganz ohne Code. So finden Sie die Methode, die zu Ihrem Kenntnisstand und Ihrem Vorhaben passt. Ob Sie nun einen NLP-Datensatz aufbauen, einen Subreddit auf Marken-Erwähnungen beobachten oder einfach eine Tabelle mit Trend-Posts brauchen: Dieser Leitfaden bringt Sie ans Ziel.
## Was bedeutet Reddit Scraping eigentlich – und warum ist es wichtig?Beim Reddit Scraping werden Posts, Kommentare, Nutzerdaten und Metadaten programmgesteuert aus Reddit-Seiten oder der API ausgelesen. Statt Threads einzeln zu öffnen und Text zu kopieren, übernimmt ein Skript oder ein Tool das Sammeln strukturierter Daten in großem Umfang.
Warum lohnt sich der Aufwand? Reddit umfasst über 100.000 aktive Subreddits und bringt schätzungsweise 7,5 Millionen Kommentare pro Tag hervor. Dort schreiben Menschen ungefiltert, was sie von Produkten, Dienstleistungen, Wettbewerbern und Trends halten — also genau die ehrlichen Signale, die auf glattgebügelten Bewertungsportalen oder Unternehmensblogs kaum zu finden sind. Google zahlt rund 60 Millionen US-Dollar pro Jahr für eine Reddit-Content-Lizenz, und OpenAI soll einen Deal über 70 Millionen US-Dollar geschlossen haben. Wenn die größten KI-Unternehmen der Welt solche Summen für diese Daten zahlen, lohnt es sich, selbst zu lernen, wie man an sie herankommt.
Warum Reddit 2025 mit Python scrapen?
Python ist die naheliegende Sprache fürs Reddit Scraping. PRAW, requests, BeautifulSoup und pandas decken jeden Schritt ab, vom API-Aufruf bis zum Export. Das „Warum“ geht aber über die Tools hinaus.
Diese Anwendungsfälle begegnen mir in Business- und Research-Teams am häufigsten:
| Anwendungsfall | Wer profitiert | Beispiel |
|---|---|---|
| Marktanalyse & Validierung | Produktmanager, Gründer | Wiederkehrende Pain Points in r/SaaS oder r/Entrepreneur analysieren |
| Sentiment-Analyse | Marketing, Brand-Teams | Beobachten, wie über Ihr Produkt im Vergleich zum Wettbewerb gesprochen wird |
| Lead-Generierung | Vertriebsteams | In Nischen-Subreddits nach Posts wie „suche ein Tool, das X kann“ suchen |
| Content-Ideenfindung | Content-Marketer | Trendfragen und Themen in r/marketing oder r/SEO aufspüren |
| Akademische / NLP-Forschung | Forscher, Data Scientists | Labeled Datasets aus Kommentar-Threads für Emotionsklassifizierung erstellen |
| Competitive Intelligence | Strategie, Operations | Wettbewerber-Subreddits auf wiederkehrende Beschwerden überwachen |
Die Reddit-Nutzerbasis erreichte 2025 schätzungsweise 1,36 Milliarden monatlich aktive Nutzer und 471,6 Millionen wöchentliche aktive Unique User — ein Plus von 24 % im Jahresvergleich. Und nach Googles Core Update im August 2024 wurde Reddit-Content in den organischen Suchergebnissen rund 400 % sichtbarer.
Mit anderen Worten: Die Daten, die Sie aus Reddit scrapen, sind zunehmend dieselben, die Google den Suchenden ohnehin anzeigt.
Welche Methode sollten Sie zum Reddit Scrapen verwenden? (Schneller Vergleich)
In Reddit-Scraping-Foren lautet die häufigste Frage schlicht: „Welche Methode soll ich nehmen?“ Genau dafür ist diese Tabelle gedacht. Passende Zeile aussuchen und loslegen.
| Kriterium | PRAW | .json-Endpunkt | BeautifulSoup (HTML) | No-Code (Thunderbit) |
|---|---|---|---|---|
| Einrichtungsaufwand | Mittel (API-App + pip install) | Keiner (nur eine URL) | Mittel (pip + DOM-Analyse) | Sehr gering (Chrome-Erweiterung) |
| API-Schlüssel nötig? | Ja | Nein | Nein | Nein |
| Kommentar-Scraping | Tief (verschachtelte Bäume) | Eingeschränkt (Top-Level) | Manuelle Analyse | KI-strukturiert |
| Pagination | Integriert | Manuell (after-Parameter) | Manuell | Automatisch |
| Rate Limiting | 100 req/min (von PRAW verwaltet) | ~10 req/min (ohne Authentifizierung) | Risiko von IP-Blockaden | Vom Tool abgefangen |
| Am besten geeignet für | Vollwertige Projekte, Forschung | Schnelle Einzelabrufe | Lernen/Anpassung | Nicht-Programmierer, schnelle Exporte |
| Exportoptionen | CSV, JSON (mit manuellem Code) | JSON (roh) | Individuell (manueller Code) | Excel, Google Sheets, Airtable, Notion |
Sie wollen komplette Python-Projekte mit tiefem Kommentar-Parsing bauen? Dann starten Sie mit Methode 1 (PRAW). Sie brauchen in den nächsten 10 Minuten schnell Daten — ganz ohne Setup? Nehmen Sie Methode 2 (den .json-Trick). Sie möchten HTML Scraping lernen oder eigene Felder extrahieren? Dann ist Methode 3 (BeautifulSoup) die richtige Wahl. Und wenn Sie Python lieber ganz auslassen und einfach an die Daten kommen wollen, springen Sie direkt zu Methode 4 (Thunderbit).
Was sich geändert hat: Reddits API-Preisupdate 2023–2024 und was noch kostenlos möglich ist
Kaum ein Scraping-Guide erwähnt das, dabei ist genau das der wichtigste Kontext für alle, die heute Reddit scrapen.
Im Juni 2023 führte Reddit zum ersten Mal seit 2008 kostenpflichtige API-Tarife ein. Die Folgen waren gravierend:
- Pushshift wurde für die öffentliche Nutzung abgeschaltet. Reddit entzog Pushshift im Mai 2023 den API-Zugang. Forschende, die darauf angewiesen waren (über 1.700 wissenschaftliche Arbeiten zitierten Pushshift), verloren über Nacht ihre wichtigste Datenquelle. Für historische Daten ist Arctic Shift der Nachfolger, doch einen öffentlichen Live-API-Ersatz gibt es nicht.
- Drittanbieter-Apps wurden eingestellt. Apollo, Reddit is Fun, Sync, BaconReader und weitere machten bis zum 30. Juni 2023 dicht, nachdem Reddit für Apollo laut dem Entwickler Gebühren von 20 Millionen US-Dollar pro Jahr aufgerufen hatte.
- Über 8.500 Subreddits gingen aus Protest offline, darunter r/funny (40 Mio. Abonnenten), r/gaming und r/science (NPR).
Was 2025 noch kostenlos verfügbar ist:
Die kostenlose OAuth-Stufe steht weiterhin für nicht-kommerzielle, private und akademische Nutzung offen: 100 Abfragen pro Minute und OAuth-Client-ID. PRAW arbeitet in diesem Rahmen problemlos für moderates Scraping. Der anonyme Zugriff (einschließlich des .json-Endpunkts) ist auf rund 10 Anfragen pro Minute gedeckelt.
Die praktische Schlussfolgerung: Für kleine bis mittlere Scraping-Projekte reicht die kostenlose Stufe völlig. Für große oder kommerzielle Vorhaben müssen Sie entweder Reddit wegen Enterprise-Zugang kontaktieren, den .json-Endpunkt oder BeautifulSoup nutzen (ohne API-Schlüssel) oder ein Tool wie Thunderbit einsetzen, das gar nicht erst von der Reddit-API abhängt.
Bevor Sie starten
- Schwierigkeitsgrad: Anfänger bis Fortgeschrittene (je nach Methode)
- Benötigte Zeit: ca. 15–30 Minuten für Methode 1–3; ca. 5 Minuten für Methode 4
- Das brauchen Sie:
- Python 3.8+ installiert (für Methode 1–3)
- Ein Reddit-Konto (für Methode 1)
- Den Chrome-Browser (für Methode 4)
- Thunderbit Chrome Extension (für Methode 4)
Methode 1: Reddit mit Python und PRAW scrapen (Schritt für Schritt)
PRAW (Python Reddit API Wrapper) ist die beliebteste und am besten dokumentierte Art, Reddit mit Python zu scrapen. Authentifizierung, Rate Limiting und Pagination nimmt Ihnen die Bibliothek ab, und das Projekt wird aktiv gepflegt — die aktuelle stabile Version ist PRAW 7.8.1 (Oktober 2024) und unterstützt Python 3.8 bis 3.13.
Schritt 1: Reddit-App erstellen und API-Zugangsdaten abrufen
Rufen Sie https://www.reddit.com/prefs/apps auf und scrollen Sie nach unten. Klicken Sie auf „are you a developer? create an app...“
Füllen Sie das Formular aus:
- Name: frei wählbar, aber aussagekräftig (z. B. „my-reddit-scraper“)
- App type: script auswählen
- Redirect URI:
http://localhost:8080eingeben (erforderlich, aber bei Script-Apps ungenutzt) - Description: optional
Klicken Sie auf Create app. Danach sehen Sie Ihre Zugangsdaten:
- client_id — die 14-stellige Zeichenfolge direkt unter dem App-Namen (beschriftet als „personal use script“)
- client_secret — das Feld mit der Beschriftung „secret“
Außerdem müssen Sie Reddits Data API Terms und die Responsible Builder Policy bestätigen, bevor die App-Erstellung abgeschlossen wird.
Wichtig: Seit Ende 2024 müssen neue Entwickler unter Umständen erst einen Zugangsantrag stellen und auf Freigabe warten. Das ist die größte Hürde für PRAW-Einsteiger, und daran führt kein Weg vorbei.
Schritt 2: PRAW installieren und eine Reddit-Instanz anlegen
Öffnen Sie Ihr Terminal und führen Sie aus:
pip install praw pandas
Erstellen Sie dann eine schreibgeschützte Reddit-Instanz:
import praw
reddit = praw.Reddit(
client_id="YOUR_CLIENT_ID",
client_secret="YOUR_CLIENT_SECRET",
user_agent="python:reddit-scraper:v1.0 (by u/yourname)",
)
# reddit.read_only ist bei Script-Apps ohne Passwort standardmäßig True
Das Format des user_agent ist nicht nebensächlich. Reddit drosselt aktiv generische Strings wie python-requests/2.x. Halten Sie sich an das von Reddit empfohlene Format: platform:app_id:version (by u/username).
Schritt 3: Posts aus einem Subreddit scrapen
So holen Sie die Top-Posts aus r/python der letzten Monate und legen sie in einem pandas DataFrame ab:
import pandas as pd
subreddit = reddit.subreddit("python")
rows = []
for post in subreddit.top(time_filter="month", limit=500):
rows.append({
"id": post.id,
"title": post.title,
"selftext": post.selftext,
"score": post.score,
"upvote_ratio": post.upvote_ratio,
"num_comments": post.num_comments,
"author": str(post.author) if post.author else "[deleted]",
"created_utc": post.created_utc,
"url": post.url,
"permalink": f"https://reddit.com{post.permalink}",
})
df = pd.DataFrame(rows)
print(df.head())
Sie können .top() durch .hot(), .new() oder .controversial() ersetzen, und time_filter akzeptiert "all", "day", "hour", "month", "week" oder "year".
Ein kleiner Hinweis: Reddit deckelt jede Listing-Abfrage bei rund 1.000 Elementen, egal wie hoch Sie limit setzen. Diese Grenze liegt auf Reddit-Seite, nicht bei PRAW.
Schritt 4: Reddit-Daten als CSV oder Excel exportieren
df.to_csv("reddit_python_top.csv", index=False)
df.to_json("reddit_python_top.json", orient="records", lines=True)
PRAW kümmert sich automatisch um das Rate Limiting — es liest bei jeder Antwort die Header X-Ratelimit-Remaining und X-Ratelimit-Reset aus und legt bei Bedarf eine Pause zwischen den Aufrufen ein. Bei moderatem Scraping müssen Sie nur selten von Hand verzögern.
So scrapen Sie Reddit-Kommentare mit Python (verschachtelte Threads)
Beim Scrapen von Kommentaren scheitern die meisten zuerst.
Reddit speichert Kommentare als Baum: Jeder Kommentar kann Unterkommentare haben, und einige Verzweigungen verstecken sich hinter „load more comments“-Links. In der PRAW-Welt erscheinen diese versteckten Zweige als MoreComments-Objekte.
So sieht das Grundprinzip aus:
Submission (t3_abc123)
├── Kommentar A (Top-Level)
│ ├── Antwort A1
│ │ └── Antwort A1a
│ └── Antwort A2
├── Kommentar B (Top-Level)
│ └── MoreComments (versteckt — „mehr Kommentare laden")
└── MoreComments (versteckt — „Thread fortsetzen")
Mit replace_more() alle versteckten Kommentare abrufen
Die Methode replace_more() durchläuft den Kommentarbaum und ersetzt jeden MoreComments-Platzhalter durch die tatsächlichen Kommentare, auf die er verweist:
submission = reddit.submission(id="abcdef")
submission.comments.replace_more(limit=10) # praxisnahes Limit für große Threads
all_comments = submission.comments.list() # flach in Breadth-first-Reihenfolge
Setzen Sie limit=None, wird jeder einzelne MoreComments-Knoten ersetzt — bei einem Thread mit 5.000+ Kommentaren kann das mehrere Minuten dauern, weil jeder Ersatz eine eigene API-Anfrage ist, die höchstens etwa 100 Kommentare zurückgibt. Bei großen Threads würde ich mit limit=10 oder limit=20 beginnen und nur dann erhöhen, wenn Sie wirklich vollständige Daten brauchen.
Verschachtelte Kommentare in eine Tabelle umwandeln
rows = []
for c in all_comments:
rows.append({
"comment_id": c.id,
"parent_id": c.parent_id, # t1_xxx = Elternkommentar, t3_xxx = Submission
"depth": c.depth,
"author": str(c.author) if c.author else "[deleted]",
"body": c.body,
"score": c.score,
"created_utc": c.created_utc,
"is_submitter": c.is_submitter,
})
comments_df = pd.DataFrame(rows)
Top-Level-Kommentare haben eine parent_id, die mit t3_ beginnt (dem Fullname der Submission). Die Spalte depth zeigt, wie tief ein Kommentar verschachtelt ist — praktisch für Filter oder Visualisierungen. Ein wichtiger Punkt: len(all_comments) deckt sich meist nicht mit submission.num_comments, weil gelöschte, entfernte und vom Spam-Filter blockierte Kommentare nicht im Baum auftauchen.
Methode 2: Der .json-Endpunkt-Trick — Reddit ohne API-Schlüssel scrapen
Hängen Sie einfach .json an eine beliebige Reddit-URL an. Mehr ist es nicht. Sie bekommen strukturiertes JSON zurück, ganz ohne Authentifizierung, App-Registrierung oder pip install.
Beispiel: https://www.reddit.com/r/python/hot.json
In Foren wird dieser Trick ständig genannt, aber kaum ein Tutorial erklärt ihn richtig.
Ein funktionierender Python-Code
import requests
headers = {"User-Agent": "python:reddit-scraper:v1.0 (by /u/yourname)"}
r = requests.get(
"https://www.reddit.com/r/python/hot.json",
headers=headers,
params={"limit": 100},
)
data = r.json()
for post in data["data"]["children"]:
p = post["data"]
print(p["title"], p["score"], p["num_comments"], p["author"])
Der User-Agent-Header ist entscheidend. Reddit blockiert oder drosselt generische User-Agents wie python-requests/2.31.0 — wie Simon Willison dokumentiert hat, hängt dieses Rate Limiting am User-Agent. Nutzen Sie denselben aussagekräftigen Stil wie bei PRAW.
Pagination mit dem after-Parameter
Der .json-Endpunkt gibt standardmäßig rund 25 Ergebnisse zurück (maximal 100 pro Anfrage). Für mehr verwenden Sie den after-Cursor aus der Antwort:
import requests, time
headers = {"User-Agent": "python:reddit-scraper:v1.0 (by /u/yourname)"}
after = None
all_posts = []
for _ in range(10): # bis zu ~1000 Posts
r = requests.get(
"https://www.reddit.com/r/python/hot.json",
headers=headers,
params={"limit": 100, "after": after},
)
data = r.json()
all_posts.extend(data["data"]["children"])
after = data["data"].get("after")
if not after:
break
time.sleep(6) # ~10 QPM = eine Anfrage alle 6 Sekunden
Der after-Wert ist ein Cursor-Token (Format: t3_xxxxxx). Wie bei PRAW liegt die harte Obergrenze bei insgesamt rund 1.000 Elementen über mehrere paginierte Anfragen hinweg.
Grenzen der .json-Methode
- Kein Zugriff auf tief verschachtelte Kommentarbäume — Sie erhalten Top-Level-Kommentare plus eine Ebene von „more“-Platzhaltern, aber keine automatische Auflösung wie bei PRAWs
replace_more() - Nur lesend — kein Voten, Posten oder Moderieren
- ~10 Anfragen pro Minute bei anonymem Zugriff — aggressive Schleifen führen zu 429-Fehlern
- Dieselbe 1.000-Elemente-Grenze wie bei der authentifizierten API
Diese Methode passt am besten für schnelle Einzelabrufe, Prototyping oder Situationen, in denen Sie keine API-App registrieren möchten.
Methode 3: Reddit mit BeautifulSoup scrapen (HTML-Parsing)
Wer schon einmal gescrapt hat, kennt BeautifulSoup vermutlich. Der entscheidende Reddit-Kniff: Nutzen Sie old.reddit.com statt des neuen React-Frontends. Die alte Oberfläche wird serverseitig gerendert, ist schlanker und deutlich leichter zu parsen — mehrere Guides aus 2025–2026 bestätigen, dass sie weiterhin online und scraper-freundlich ist.
Requests und BeautifulSoup einrichten
pip install requests beautifulsoup4
import requests
from bs4 import BeautifulSoup
headers = {"User-Agent": "python:reddit-scraper:v1.0 (by /u/yourname)"}
r = requests.get("https://old.reddit.com/r/python/", headers=headers)
soup = BeautifulSoup(r.text, "html.parser")
Post-Daten aus dem DOM extrahieren
Auf old.reddit.com steckt jeder Post in einem <div> mit der Klasse thing. Am stabilsten sind die data-*-Attribute:
for thing in soup.select("div#siteTable > div.thing"):
title_el = thing.select_one("a.title")
print({
"title": title_el.get_text(strip=True) if title_el else None,
"author": thing.get("data-author"),
"score": thing.get("data-score"),
"comments": thing.get("data-comments-count"),
"domain": thing.get("data-domain"),
"url": title_el.get("href") if title_el else None,
})
Verlassen Sie sich lieber auf die data-*-Attribute als auf verschachtelte Klassenselektoren — Reddit hat Klassennamen über die Jahre mehrfach geändert, die Datenattribute sind dagegen templatebasiert und bleiben meist stabil.
Pagination auf old.reddit.com handhaben
import time
url = "https://old.reddit.com/r/python/"
all_rows = []
while url:
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text, "html.parser")
for thing in soup.select("div#siteTable > div.thing"):
title_el = thing.select_one("a.title")
all_rows.append({
"title": title_el.get_text(strip=True) if title_el else None,
"author": thing.get("data-author"),
"score": thing.get("data-score"),
"comments": thing.get("data-comments-count"),
"url": title_el.get("href") if title_el else None,
})
nxt = soup.select_one("span.next-button a")
url = nxt["href"] if nxt else None
time.sleep(2) # höfliche Verzögerung
Wann sollte man BeautifulSoup statt PRAW verwenden?
BeautifulSoup passt gut, wenn Sie DOM-Scraping lernen wollen, sich das OAuth-App-Setup sparen möchten oder spezielle Felder brauchen, die PRAW nicht liefert. Die Methode ist allerdings anfälliger: Die HTML-Struktur kann sich ohne Vorwarnung ändern, IP-Blockaden sind 2025 aggressiver als früher, und Pagination und Fehlerbehandlung müssen Sie komplett selbst schreiben. In puncto Zuverlässigkeit und Tiefe hat PRAW die Nase vorn.
Methode 4: Reddit ohne Code mit Thunderbit scrapen
Ein Geständnis: Viele, die nach „How to Scrape Reddit with Python“ suchen, wollen eigentlich gar kein Python schreiben. Sie wollen einfach nur die Daten. Wenn das auf Sie zutrifft, ist dieser Abschnitt Ihr Ausweg.
Thunderbit ist eine KI-gestützte Chrome-Erweiterung, die unser Team genau für solche Fälle gebaut hat — strukturierte Daten aus Webseiten holen, ohne Code zu schreiben.
Schritt 1: Thunderbit installieren und eine Reddit-Seite öffnen
Installieren Sie die Thunderbit Chrome Extension und öffnen Sie dann eine beliebige Reddit-Subreddit- oder Post-Seite, z. B. reddit.com/r/python.
Kein API-Schlüssel, keine Python-Umgebung, keine Terminal-Befehle.
Schritt 2: Auf „AI Suggest Fields“ klicken und die KI die Seite lesen lassen
Klicken Sie in der Browser-Toolbar auf das Thunderbit-Symbol und dann auf „AI Suggest Fields.“ Die KI von Thunderbit scannt die Seite und schlägt automatisch Spalten vor — etwa Post-Titel, Benutzername, Upvotes, Kommentaranzahl, Veröffentlichungsdatum, Post-Beschreibung, Community-Name und Post-URL.
Spalten lassen sich jederzeit hinzufügen, entfernen oder umbenennen. Interessieren Sie zum Beispiel nur Titel und Score, löschen Sie einfach die übrigen Felder.
Schritt 3: Auf „Scrape“ klicken und Daten exportieren
Klicken Sie auf „Scrape“, und Thunderbit extrahiert die Daten; die Pagination wird automatisch erledigt. Sobald die Tabelle gefüllt ist, exportieren Sie direkt nach Excel, Google Sheets, Airtable oder Notion — ganz ohne CSV-Code.
Für mehr Tiefe öffnet Thunderbits Subpage Scraping einzelne Threads und reichert Ihre Tabelle automatisch mit Kommentar-Daten an. Das ähnelt konzeptionell PRAWs replace_more(), nur eben ohne eine einzige Codezeile.
Bonus: Geplantes Scraping für laufendes Reddit-Monitoring
Wenn Sie einen Subreddit täglich im Blick behalten müssen — etwa Marken-Erwähnungen in r/SaaS oder Wettbewerbsdiskussionen in einer Nischen-Community — übernimmt Thunderbits geplanter Scraper die wiederkehrenden Läufe von selbst. Sie beschreiben das Intervall in normaler Sprache (z. B. „jeden Werktag um 9 Uhr“), den Rest erledigt das Tool und liefert frische Daten an Ihre verbundene Tabelle oder Datenbank.
Mehr zu Thunderbits Reddit-Scraping-Funktionen finden Sie auf dem Thunderbit YouTube-Kanal.
Tipps und Best Practices fürs Reddit Scraping mit Python
Die meisten dieser Punkte habe ich durch eigene Fehler gelernt. Sie gelten unabhängig davon, welche der oben genannten Methoden Sie nutzen.
Reddit-Nutzungsbedingungen und Rate Limits beachten
Reddits Data API Terms untersagen kommerzielles Scraping ausdrücklich ohne schriftliche Genehmigung — und zwar für jeden Zugriffsweg, nicht nur für die API. Für private, akademische und interne Forschungszwecke bewegen sich die kostenlose OAuth-Stufe und Thunderbits Workflows im Rahmen angemessener Nutzung.
Rate-Limit-Übersicht:
| Szenario | Limit | Was passiert? |
|---|---|---|
| Authentifiziert (OAuth) | 60–100 req/min | PRAW verwaltet das automatisch |
| Nicht authentifiziert (.json, HTML) | ~10–30 req/min | 429 Too Many Requests |
| Generischer User-Agent | Stark gedrosselt | 403 Forbidden oder stille Blockade |
Verwenden Sie immer einen aussagekräftigen User-Agent-String. Das ist der häufigste Grund, warum Einsteiger auf 429- oder 403-Fehler stoßen.
Daten sauber speichern und strukturieren
- Nutzen Sie pandas DataFrames mit klar definierter Spaltenreihenfolge für vorhersehbare CSV-/Excel-Exporte
- Wandeln Sie
created_utcin lesbare Zeitstempel um:pd.to_datetime(df["created_utc"], unit="s") - Entfernen Sie Duplikate über
id, wenn Sie aus mehreren Sortierungen scrapen (hot, new und top überschneiden sich oft) - Fangen Sie gelöschte Autoren sauber ab:
str(post.author) if post.author else "[deleted]"
Häufige Fehler elegant abfangen
| Fehler | Ursache | Lösung |
|---|---|---|
| 429 Too Many Requests | Rate Limit überschritten (60–100 req/min bei OAuth) | Exponential Backoff implementieren; Header X-Ratelimit-Reset prüfen |
| 403 Forbidden | Schlechter User-Agent oder blockierte IP | Einen eindeutigen, aussagekräftigen UA-String verwenden; sicherstellen, dass die OAuth-App aktiv ist |
None-Autor | Gelöschter oder gesperrter Account | Mit if post.author else "[deleted]" absichern |
prawcore.TooManyRequests | PRAW-interner Rate-Limit-Puffer ausgelöst | ratelimit_seconds erhöhen oder Anfragen gleichmäßiger verteilen |
| 5xx oder 413 bei großen Bäumen | Überlastetes Reddit-Backend bei tiefen Threads | replace_more() mit Retry-Logik umgeben; Rekursionstiefe begrenzen |
Reddit-Scraping-Anwendungsfälle: Was kann man mit den Daten machen?
Das Scraping ist nur Schritt eins. Entscheidend ist, was Sie daraus machen:
- Vertriebsteams: Subreddits wie r/SaaS, r/smallbusiness oder r/Entrepreneur nach Posts wie „suche ein Tool, das X kann“ überwachen. Treffer in Lead-Listen oder CRM-Workflows einspeisen. Fürs tägliche Monitoring Thunderbits geplanten Scraper nutzen.
- Marketing- und Content-Teams: Marken-Erwähnungen verfolgen, Sentiment-Trends analysieren und Trendfragen für Content-Ideen auswerten. Reddit-Exporte mit Google Sheets für die Teamarbeit kombinieren.
- E-Commerce und Operations: Wettbewerber-Diskussionen nach wiederkehrenden Beschwerden überwachen. Subreddits wie r/BuyItForLife und branchenspezifische Communities sind wahre Goldgruben für Produktfeedback.
- Forscher und Analysten: NLP-Datensätze aufbauen — akademische Arbeiten nutzten 2024 Datensätze mit 37.000 Kommentaren bis 54.000 Kommentaren für Sentiment- und Emotionsklassifizierung. PRAWs Datensammlung ist in Peer Reviews zitierfähig.
Wenn Sie tiefer einsteigen möchten, wie man Social-Media-Daten mit effektiven Tools scrapt oder Daten von Websites nach Excel extrahiert, haben wir diese Workflows im Thunderbit-Blog ausführlich behandelt.
Fazit
Reddit Scraping sieht 2025 völlig anders aus als noch vor zwei Jahren. Die API-Änderungen von 2023 haben Pushshift abgeschaltet, beliebte Drittanbieter-Apps beendet und kostenpflichtige Tarife eingeführt.
Doch die kostenlose Stufe lebt weiter und reicht für private und akademische Nutzung völlig — und es gibt heute mehr Wege denn je, an die Daten zu kommen.
Hier die Kurzfassung für jede Methode:

Ob Python-Profi oder jemand, der bis Mittag einfach eine Tabelle haben will — eine dieser vier Methoden bringt Sie ans Ziel. Wenn Sie den Code lieber ganz überspringen möchten, können Sie Thunderbit kostenlos ausprobieren und sehen, wie Reddit mit ein paar Klicks verarbeitet wird. Und wenn Sie Ihre Python-Scraping-Fähigkeiten weiter ausbauen wollen, speichern Sie diesen Leitfaden. Ich halte ihn aktuell, während sich die Reddit-Landschaft weiter verändert.
Mehr zu Web-Scraping-Ansätzen finden Sie in unseren Anleitungen zu Web Scraping mit Python, den besten Python-Web-Scraping-Tools und Best Practices fürs Web Scraping.
FAQs
Ist es legal, Reddit mit Python zu scrapen?
Reddits Data API Terms verbieten kommerzielles Scraping ohne schriftliche Genehmigung. Die kostenlose OAuth-Stufe steht für private, nicht-kommerzielle und akademische Nutzung offen. Die rechtliche Bewertung hängt nicht vom Transportweg ab. Sie gilt also für API, .json-Endpunkt und HTML-Scraping gleichermaßen. Prüfen Sie vor Scraping in großem Umfang stets die aktuellen Reddit-Nutzungsbedingungen.
Funktioniert PRAW nach Reddits API-Änderungen 2023 noch?
Ja. PRAW 7.8.1 (Oktober 2024) wird aktiv gepflegt und arbeitet automatisch innerhalb der kostenlosen OAuth-Grenze von 100 Anfragen pro Minute. Die Preisänderungen von 2023 betrafen vor allem hochvolumige und kommerzielle API-Nutzung, nicht die typischen PRAW-Scraping-Muster.
Kann ich Reddit ohne API-Schlüssel scrapen?
Ja — der .json-Endpunkt und die HTML-Analyse mit BeautifulSoup funktionieren beide ohne API-Schlüssel. Auch Thunderbit braucht keinen API-Schlüssel. Alle drei Methoden unterliegen jedoch weiterhin Reddits Nutzungsbedingungen für kommerzielle Nutzung.
Wie scrape ich Reddit-Kommentare und nicht nur Posts?
Mit PRAW verwenden Sie submission.comments.replace_more(limit=10) und anschließend submission.comments.list(), um den verschachtelten Kommentarbaum in eine flache Liste zu überführen. Mit Thunderbit nutzen Sie Subpage Scraping, um eine Post-Liste automatisch mit Kommentardaten aus jedem Thread anzureichern.
Was ist der schnellste Weg, Reddit ohne Programmieren zu scrapen?
Mit der Thunderbit Chrome Extension scrapen Sie Reddit-Posts und -Kommentare mit zwei Klicks und exportieren direkt nach Excel, Google Sheets, Airtable oder Notion — ohne Python, ohne API-Schlüssel, ohne Einrichtung.
Mehr erfahren


