Google betaler 60 millioner dollars om året for at licensere Reddit-data. OpenAI’s aftale skulle angiveligt ligge på 70 millioner dollars. Det siger en del om, hvad der gemmer sig i de kommentarspor. Hvis du nogensinde har prøvet manuelt at samle diskussionstråde, kommentarer eller sentimentdata fra Reddit, kender du allerede frustrationen: endeløs scrolling, copy-paste og faner i massevis.
Jeg brugte en god del af sidste kvartal på at hjælpe vores team hos Thunderbit med at undersøge, hvordan folk faktisk udtrækker Reddit-data i 2025. Landskabet har ændret sig markant siden Reddits API-prisændring i 2023, og de fleste guides online er enten forældede eller dækker kun én metode. Så jeg har samlet alt det, der faktisk virker lige nu — fire forskellige tilgange, fra fuld Python-kodning til no-code-udtræk — så du kan vælge den metode, der passer til dit niveau og dit behov. Uanset om du bygger et NLP-datasæt, overvåger en subreddit for brandmentions eller bare vil have et regneark med trending opslag, så er du dækket ind her.
Hvad er Reddit-scraping (og hvorfor er det vigtigt)?
Reddit-scraping er processen med programmatisk at udtrække opslag, kommentarer, brugerdata og metadata fra Reddits sider eller API. I stedet for manuelt at gennemse tråde og kopiere tekst bruger du et script eller et værktøj til at indsamle strukturerede data i stor skala.
Hvorfor overhovedet gøre det? Reddit har over og genererer anslået . Det er her, folk deler ufiltrerede meninger om produkter, services, konkurrenter og trends — den slags autentiske signaler, som næsten er umulige at finde på polerede anmeldelsessider eller virksomheders egne blogs. Google betaler omkring for en Reddit-contentlicens, og OpenAI’s aftale er angiveligt . Hvis verdens største AI-virksomheder betaler trecifrede millionbeløb for de her data, er det værd at lære selv at få adgang til dem.
Hvorfor scrape Reddit med Python i 2025?
Python er standardvalget til Reddit-scraping — PRAW, requests, BeautifulSoup og pandas dækker alt fra API-kald til dataeksport. Men "hvorfor" handler om mere end bare værktøjer.
Her er de mest almindelige use cases, jeg ser på tværs af forretnings- og researchteams:
| Use Case | Hvem får værdi | Eksempel |
|---|---|---|
| Markedsresearch og validering | Produktchefer, founders | At analysere r/SaaS eller r/Entrepreneur for gentagne smertepunkter |
| Sentimentanalyse | Marketing, brandteams | At følge med i, hvordan folk taler om dit produkt versus konkurrenters |
| Leadgenerering | Salgsteams | At finde opslag som "leder efter et værktøj, der kan X" i niche-subreddits |
| Idéer til indhold | Content marketers | At spotte trending spørgsmål og emner i r/marketing eller r/SEO |
| Akademisk / NLP-forskning | Forskere, data scientists | At bygge mærkede datasæt fra kommentartråde til emotion classification |
| Konkurrentindsigt | Strategi, drift | At overvåge konkurrenters subreddits for tilbagevendende klager |
Reddits brugerbase nåede i 2025 anslået , med — en stigning på 24 % år over år. Og efter Googles core-opdatering i august 2024 blev Reddit-indhold omtrent i organiske søgeresultater.
Kort sagt: De data, du scraper fra Reddit, er i stigende grad de samme data, som Google viser til søgende brugere.
Hvilken metode skal du bruge til at scrape Reddit? (Hurtig sammenligning)
Det mest almindelige spørgsmål i Reddit-scraping-fora er bogstaveligt talt "Hvilken metode skal jeg bruge?" Så jeg lavede denne tabel. Vælg din række og kom videre.
| Kriterie | PRAW | .json-endpoint | BeautifulSoup (HTML) | No-code (Thunderbit) |
|---|---|---|---|---|
| Opsætningskompleksitet | Mellem (API-app + pip-installation) | Ingen (bare en URL) | Mellem (pip + DOM-inspektion) | Meget lav (Chrome-udvidelse) |
| API-nøgle påkrævet? | Ja | Nej | Nej | Nej |
| Scraping af kommentarer | Dybt (indlejrede træer) | Begrænset (øverste niveau) | Manuel parsing | AI-struktureret |
| Pagination | Indbygget | Manuel (after-parameter) | Manuel | Automatisk |
| Rate limiting | 100 forespørgsler/min (styret af PRAW) | ~10 forespørgsler/min (uden login) | Risiko for IP-blokering | Håndteres af værktøjet |
| Bedst til | Fuldstændige projekter, research | Hurtige engangstræk | Læring/tilpasning | Ikke-kodere, hurtige exports |
| Eksportmuligheder | CSV, JSON (manuel kode) | JSON (rå) | Egen løsning (manuel kode) | Excel, Google Sheets, Airtable, Notion |
Hvis du vil bygge fulde Python-projekter med dyb kommentarudtræk, så start med metode 1 (PRAW). Har du brug for et hurtigt dataudtræk inden for de næste 10 minutter uden opsætning? Prøv metode 2 (.json-tricket). Vil du lære HTML-scraping eller har du brug for brugerdefinerede felter? Så er metode 3 (BeautifulSoup) et godt valg. Og hvis du helst vil springe Python helt over og bare have dataene, så gå direkte til metode 4 ().
Hvad ændrede sig: Reddits API-prisopdatering i 2023–2024 (og hvad der stadig virker gratis)
Næsten ingen scraping-guide nævner det her — og det er det vigtigste kontekstpunkt for alle, der scraper Reddit i dag.
I juni 2023 indførte Reddit betalte niveauer for API-adgang for første gang siden 2008. Følgerne var massive:
- Pushshift døde for offentlig brug. Reddit tilbagekaldte Pushshifts API-adgang i maj 2023. Forskere, der var afhængige af den (over citerede Pushshift), mistede fra den ene dag til den anden deres primære datakilde. Efterfølgeren til historiske data er , men der findes ingen offentlig live API-erstatning.
- Tredjepartsapps lukkede ned. Apollo, Reddit is Fun, Sync, BaconReader og andre lukkede alle senest 30. juni 2023, efter at Reddit angiveligt prissatte Apollo-udviklerens adgang til i API-afgifter.
- Over 8.500 subreddits gik i sort i protest, herunder r/funny (40 mio. abonnenter), r/gaming og r/science ().
Hvad der stadig er gratis i 2025:
Det er stadig tilgængeligt til ikke-kommerciel, personlig og akademisk brug — 100 forespørgsler pr. minut pr. OAuth-klient-id. PRAW fungerer perfekt under dette niveau til moderat scraping. Uautentificeret adgang (inklusive .json-endpointet) er begrænset til cirka 10 forespørgsler i minuttet.
Det praktiske takeaway: Til små og mellemstore scrapingopgaver er det gratis niveau mere end nok. Til storskala eller kommerciel brug skal du enten kontakte Reddit for enterprise-adgang, bruge .json-endpointet eller BeautifulSoup (som ikke kræver API-nøgler), eller bruge et værktøj som Thunderbit, der slet ikke er afhængigt af Reddits API.
Inden du går i gang
- Sværhedsgrad: Begynder til mellem (afhænger af metoden)
- Tidsforbrug: Ca. 15–30 minutter for metode 1–3; ca. 5 minutter for metode 4
- Det skal du bruge:
- Python 3.8+ installeret (til metode 1–3)
- En Reddit-konto (til metode 1)
- Chrome-browser (til metode 4)
- (til metode 4)
Metode 1: Sådan scraper du Reddit med Python ved hjælp af PRAW (trin for trin)
PRAW (Python Reddit API Wrapper) er den mest populære og bedst dokumenterede måde at scrape Reddit med Python på. Den håndterer autentificering, rate limiting og pagination for dig, og den vedligeholdes aktivt — den nyeste stabile version er PRAW 7.8.1 (oktober 2024), som understøtter Python 3.8 til 3.13.
Trin 1: Opret en Reddit-app og få dine API-oplysninger
Gå til og scroll helt ned. Klik på "are you a developer? create an app..."
Udfyld formularen:
- Name: noget beskrivende (f.eks. "my-reddit-scraper")
- App type: vælg script
- Redirect URI: indtast
http://localhost:8080(påkrævet, men bruges ikke til script-apps) - Description: valgfri
Klik på Create app. Du får vist dine credentials:
- client_id — den 14-tegns streng direkte under app-navnet (mærket "personal use script")
- client_secret — feltet mærket "secret"
Du skal også acceptere Reddits og , før oprettelsen af appen bliver færdig.
Et vigtigt heads-up: Siden slutningen af 2024 kan nye udviklere være nødt til at indsende en anmodning om adgang og vente på godkendelse. Det er den største gnidning for førstegangsbrugere af PRAW, og der er ingen vej udenom.
Trin 2: Installer PRAW og opret en Reddit-instans
Åbn din terminal, og kør:
1pip install praw pandas
Opret derefter en read-only Reddit-instans:
1import praw
2reddit = praw.Reddit(
3 client_id="YOUR_CLIENT_ID",
4 client_secret="YOUR_CLIENT_SECRET",
5 user_agent="python:reddit-scraper:v1.0 (by u/yourname)",
6)
7# reddit.read_only er True som standard for script-apps uden password
Formatet for user_agent betyder noget. Reddit throttler aktivt generiske strenge som python-requests/2.x. Brug Reddits anbefalede format: platform:app_id:version (by u/username).
Trin 3: Scrape opslag fra en subreddit
Her er et eksempel på at hente de mest populære opslag fra r/python for den seneste måned og gemme dem i en pandas DataFrame:
1import pandas as pd
2subreddit = reddit.subreddit("python")
3rows = []
4> This paragraph contains content that cannot be parsed and has been skipped.
5df = pd.DataFrame(rows)
6print(df.head())
Du kan skifte .top() ud med .hot(), .new() eller .controversial(), og time_filter accepterer "all", "day", "hour", "month", "week" eller "year".
Vigtig note: Reddit begrænser enhver listing til cirka 1.000 elementer, uanset hvor højt du sætter limit. Det er en grænse på Reddits side, ikke en begrænsning i PRAW.
Trin 4: Eksportér Reddit-data til CSV eller Excel
1df.to_csv("reddit_python_top.csv", index=False)
2df.to_json("reddit_python_top.json", orient="records", lines=True)
PRAW håndterer rate limiting automatisk — den læser X-Ratelimit-Remaining og X-Ratelimit-Reset-headers på hvert svar og sover mellem kald efter behov. Ved moderat scraping behøver du sjældent selv at tilføje forsinkelser.
Sådan scraper du Reddit-kommentarer med Python (dybe, indlejrede tråde)
At scrape kommentarer er dér, de fleste støder på en mur.
Reddit gemmer kommentarer som et træ: hver kommentar kan have underkommentarer, og nogle grene er skjult bag "load more comments"-links. I PRAW-verdenen repræsenteres de skjulte grene som MoreComments-objekter.
This paragraph contains content that cannot be parsed and has been skipped.
Her er den mentale model:
1Submission (t3_abc123)
2├── Comment A (top-level)
3│ ├── Reply A1
4│ │ └── Reply A1a
5│ └── Reply A2
6├── Comment B (top-level)
7│ └── MoreComments (hidden — "load more comments")
8└── MoreComments (hidden — "continue this thread")
Brug replace_more() til at hente alle skjulte kommentarer
Metoden replace_more() gennemløber kommentartræet og erstatter hver MoreComments-placeholder med de faktiske kommentarer, den peger på:
1submission = reddit.submission(id="abcdef")
2submission.comments.replace_more(limit=10) # praktisk loft for store tråde
3all_comments = submission.comments.list() # flad liste i breadth-first rækkefølge
Hvis du sætter limit=None, erstattes hver eneste MoreComments-node — men på en tråd med 5.000+ kommentarer kan det tage flere minutter, fordi hver erstatning er ét API-kald, der højst returnerer omkring 100 kommentarer. Til store tråde anbefaler jeg at starte med limit=10 eller limit=20 og kun øge, hvis du har brug for fuldstændighed.
Gør indlejrede kommentarer flade til en tabel
1rows = []
2for c in all_comments:
3 rows.append({
4 "comment_id": c.id,
5 "parent_id": c.parent_id, # t1_xxx = forældrekommentar, t3_xxx = submission
6 "depth": c.depth,
7 "author": str(c.author)