So scrape ich Reddit mit Python: 4 Methoden, die heute noch funktionieren

Zuletzt aktualisiert am July 13, 2026
So scrape ich Reddit mit Python: 4 Methoden, die heute noch funktionieren

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:

AnwendungsfallWer profitiertBeispiel
Marktanalyse & ValidierungProduktmanager, GründerWiederkehrende Pain Points in r/SaaS oder r/Entrepreneur analysieren
Sentiment-AnalyseMarketing, Brand-TeamsBeobachten, wie über Ihr Produkt im Vergleich zum Wettbewerb gesprochen wird
Lead-GenerierungVertriebsteamsIn Nischen-Subreddits nach Posts wie „suche ein Tool, das X kann“ suchen
Content-IdeenfindungContent-MarketerTrendfragen und Themen in r/marketing oder r/SEO aufspüren
Akademische / NLP-ForschungForscher, Data ScientistsLabeled Datasets aus Kommentar-Threads für Emotionsklassifizierung erstellen
Competitive IntelligenceStrategie, OperationsWettbewerber-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.

KriteriumPRAW.json-EndpunktBeautifulSoup (HTML)No-Code (Thunderbit)
EinrichtungsaufwandMittel (API-App + pip install)Keiner (nur eine URL)Mittel (pip + DOM-Analyse)Sehr gering (Chrome-Erweiterung)
API-Schlüssel nötig?JaNeinNeinNein
Kommentar-ScrapingTief (verschachtelte Bäume)Eingeschränkt (Top-Level)Manuelle AnalyseKI-strukturiert
PaginationIntegriertManuell (after-Parameter)ManuellAutomatisch
Rate Limiting100 req/min (von PRAW verwaltet)~10 req/min (ohne Authentifizierung)Risiko von IP-BlockadenVom Tool abgefangen
Am besten geeignet fürVollwertige Projekte, ForschungSchnelle EinzelabrufeLernen/AnpassungNicht-Programmierer, schnelle Exporte
ExportoptionenCSV, 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:8080 eingeben (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:

SzenarioLimitWas passiert?
Authentifiziert (OAuth)60–100 req/minPRAW verwaltet das automatisch
Nicht authentifiziert (.json, HTML)~10–30 req/min429 Too Many Requests
Generischer User-AgentStark gedrosselt403 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_utc in 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

FehlerUrsacheLösung
429 Too Many RequestsRate Limit überschritten (60–100 req/min bei OAuth)Exponential Backoff implementieren; Header X-Ratelimit-Reset prüfen
403 ForbiddenSchlechter User-Agent oder blockierte IPEinen eindeutigen, aussagekräftigen UA-String verwenden; sicherstellen, dass die OAuth-App aktiv ist
None-AutorGelöschter oder gesperrter AccountMit if post.author else "[deleted]" absichern
prawcore.TooManyRequestsPRAW-interner Rate-Limit-Puffer ausgelöstratelimit_seconds erhöhen oder Anfragen gleichmäßiger verteilen
5xx oder 413 bei großen BäumenÜberlastetes Reddit-Backend bei tiefen Threadsreplace_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:

reddit-scraping-methods.webp

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

Fawad Khan
Fawad Khan
Fawad verdient seinen Lebensunterhalt mit Schreiben und liebt es ehrlich gesagt ziemlich. Seit Jahren beschäftigt er sich damit, was gute Texte einprägsam macht – und was dazu führt, dass Leser einfach weiterscrollen. Frag ihn nach Marketing, und er redet stundenlang. Frag ihn nach Carbonara, und er redet noch länger.

Thunderbit ausprobieren

Leads und andere Daten in nur 2 Klicks extrahieren. Mit KI unterstützt.

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