Как скрапить Reddit с помощью Python: 4 рабочих способа

Последнее обновление: July 9, 2026
Как скрапить Reddit с помощью Python: 4 рабочих способа

Google ежегодно платит $60 миллионов за лицензию на данные Reddit. По слухам, сделка OpenAI оценивается в $70 миллионов. Это многое говорит о том, что скрыто в этих ветках комментариев. Если вы хоть раз пытались вручную собирать обсуждения, комментарии или данные о тональности с Reddit, то знаете, насколько это утомительно: бесконечная прокрутка, копирование и вставка, десятки вкладок.

В прошлом квартале я потратил немало времени, помогая команде Thunderbit разобраться, как именно люди извлекают данные из Reddit в 2025 году. После обновления ценовой политики Reddit API в 2023 году ситуация сильно изменилась, а большинство гайдов в интернете либо уже устарели, либо описывают только один способ. Поэтому я собрал всё, что реально работает прямо сейчас — четыре разных подхода, от полноценного Python-скриптинга до извлечения данных без кода, — чтобы вы могли выбрать вариант под свой уровень и задачу. Хотите собрать датасет для NLP, отслеживать упоминания бренда в сабреддите или просто получить таблицу с популярными постами — этот материал вам пригодится.

## Что такое скрапинг Reddit и зачем он нужен?

Скрапинг Reddit — это программное извлечение постов, комментариев, данных пользователей и метаданных со страниц Reddit или через API. Вместо ручного просмотра веток и копирования текста вы используете скрипт или инструмент, чтобы собирать структурированные данные в нужном объёме.

Зачем вообще это делать? На Reddit более 100 000 активных сабреддитов и, по оценкам, публикуется 7,5 миллиона комментариев в день. Здесь люди делятся неприукрашенными мнениями о продуктах, сервисах, конкурентах и трендах — это тот самый живой сигнал, который почти невозможно найти на отполированных сайтах с отзывами или в корпоративных блогах. Google платит примерно $60 миллионов в год за лицензию на контент Reddit, а сделка OpenAI, по сообщениям, составляет $70 миллионов. Если крупнейшие AI-компании мира платят за эти данные девятизначные суммы, стоит разобраться, как получить к ним доступ самостоятельно.

Зачем скрапить Reddit с помощью Python в 2025 году?

Python — стандартный язык для скрапинга Reddit: PRAW, requests, BeautifulSoup и pandas закрывают весь путь от API-запросов до экспорта данных. Но причина использовать Python не сводится только к инструментам.

Вот самые частые сценарии, которые я вижу у бизнес-команд и исследователей:

СценарийКому полезноПример
Исследование рынка и проверка гипотезПродакт-менеджеры, фаундерыПоиск повторяющихся болей в r/SaaS или r/Entrepreneur
Анализ тональностиМаркетинг, бренд-командыОтслеживание того, как люди говорят о вашем продукте и конкурентах
Генерация лидовОтделы продажПоиск постов вроде «ищу инструмент, который умеет X» в нишевых сабреддитах
Идеи для контентаКонтент-маркетологиВыявление популярных вопросов и тем в r/marketing или r/SEO
Академические / NLP-исследованияИсследователи, дата-сайентистыСоздание размеченных датасетов из комментариев для классификации эмоций
Конкурентная разведкаСтратегия, операционные командыМониторинг сабреддитов конкурентов на предмет повторяющихся жалоб

По оценкам, аудитория Reddit достигла 1,36 миллиарда ежемесячно активных пользователей в 2025 году, а еженедельная активная аудитория составила 471,6 миллиона уникальных пользователей — рост на 24% год к году. А после августовского core update Google 2024 года контент Reddit стал примерно на 400% заметнее в органической выдаче.

Иными словами: данные, которые вы извлекаете из Reddit, всё чаще совпадают с теми данными, которые Google показывает пользователям в поиске.

Какой способ выбрать для скрапинга Reddit? (Краткое сравнение)

Самый частый вопрос на форумах по скрапингу Reddit звучит буквально так: «Какой метод мне использовать?» Поэтому я собрал эту таблицу. Выбирайте подходящую строку и двигайтесь дальше.

КритерийPRAW.json endpointBeautifulSoup (HTML)Без кода (Thunderbit)
Сложность настройкиСредняя (API-приложение + pip install)Нет (достаточно URL)Средняя (pip + анализ DOM)Очень низкая (расширение Chrome)
Нужен API-ключ?ДаНетНетНет
Скрапинг комментариевГлубокий (вложенные деревья)Ограниченный (верхний уровень)Ручной парсингСтруктурирование AI
ПагинацияВстроеннаяРучная (параметр after)РучнаяАвтоматическая
Ограничения по частоте100 запросов/мин (управляется PRAW)~10 запросов/мин (без авторизации)Риск блокировки IPОбрабатывается инструментом
Лучше всего подходит дляПолноценные проекты, исследованияБыстрые одноразовые выгрузкиОбучения и кастомизацииНе-программисты, быстрый экспорт
Варианты экспортаCSV, JSON (через код)JSON (сырые данные)Кастомный (через код)Excel, Google Sheets, Airtable, Notion

Если вам нужны полноценные Python-проекты с глубоким извлечением комментариев, начните со способа 1 (PRAW). Нужна быстрая выгрузка в ближайшие 10 минут без подготовки? Попробуйте способ 2 (трюк с .json). Хотите научиться HTML-скрапингу или нужны кастомные поля? Тогда способ 3 (BeautifulSoup). А если вы хотите вообще обойтись без Python и просто получить данные, переходите к способу 4 (Thunderbit).

Что изменилось: обновление цен Reddit API в 2023–2024 годах и что всё ещё доступно бесплатно

Почти ни один гайд по скрапингу не объясняет это — а между тем именно здесь кроется главный контекст для тех, кто сегодня собирает данные с Reddit.

В июне 2023 года Reddit впервые с 2008 года ввёл платные уровни доступа к API. Последствия были серьёзными:

  • Pushshift перестал быть доступен для публичного использования. Reddit отозвал доступ Pushshift к API в мае 2023 года. Исследователи, которые на него опирались (Pushshift цитировался более чем в 1 700 научных работах), в одночасье потеряли основной источник данных. Преемник для исторических данных — Arctic Shift, но публичной замены для live API нет.
  • Сторонние приложения закрылись. Apollo, Reddit is Fun, Sync, BaconReader и другие прекратили работу к 30 июня 2023 года после того, как Reddit выставил разработчику Apollo цену $20 миллионов в год за API.
  • Более 8 500 сабреддитов ушли в офлайн в знак протеста, включая r/funny (40 млн подписчиков), r/gaming и r/science (NPR).

Что всё ещё бесплатно в 2025 году:

Бесплатный OAuth-тариф по-прежнему доступен для некоммерческого, личного и академического использования — 100 запросов в минуту на один OAuth client ID. PRAW отлично работает в рамках этого тарифа для умеренного скрапинга. Неавторизованный доступ (включая .json endpoint) ограничен примерно 10 запросами в минуту.

Практический вывод: для небольших и средних задач бесплатного тарифа более чем достаточно. Для крупномасштабного или коммерческого использования вам придётся либо обратиться в Reddit за enterprise-доступом, либо использовать .json endpoint или BeautifulSoup (они не требуют API-ключей), либо взять инструмент вроде Thunderbit, который вообще не зависит от API Reddit.

Перед началом

  • Сложность: от начального до среднего уровня — зависит от метода
  • Время: около 15–30 минут для способов 1–3; около 5 минут для способа 4
  • Что понадобится:

Способ 1: как скрапить Reddit с помощью Python и PRAW — пошагово

PRAW (Python Reddit API Wrapper) — самый популярный и лучше всего документированный способ скрапинга Reddit на Python. Он берёт на себя авторизацию, лимиты запросов и пагинацию, а также активно поддерживается: последняя стабильная версия — PRAW 7.8.1 (октябрь 2024), поддерживает Python 3.8–3.13.

Шаг 1. Создайте приложение Reddit и получите API-учётные данные

Перейдите на https://www.reddit.com/prefs/apps и прокрутите страницу вниз. Нажмите "are you a developer? create an app..."

Заполните форму:

  • Name: любое понятное имя, например "my-reddit-scraper"
  • App type: выберите script
  • Redirect URI: укажите http://localhost:8080 (обязательно, но для script-приложений не используется)
  • Description: по желанию

Нажмите Create app. Вы увидите свои данные:

  • client_id — 14-символьная строка прямо под названием приложения (подпись "personal use script")
  • client_secret — поле, помеченное как "secret"

Перед завершением создания приложения вам также нужно принять Data API Terms и Responsible Builder Policy.

И ещё важный момент: с конца 2024 года новым разработчикам может понадобиться отправить запрос на доступ и дождаться одобрения. Это главный барьер для тех, кто впервые работает с PRAW, и обойти его нельзя.

Шаг 2. Установите PRAW и создайте объект Reddit

Откройте терминал и выполните:

pip install praw pandas

Затем создайте объект Reddit в режиме только для чтения:

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 по умолчанию True для script-приложений без пароля

Формат user_agent действительно важен. Reddit активно ограничивает слишком общие строки вроде python-requests/2.x. Используйте рекомендованный формат: platform:app_id:version (by u/username).

Шаг 3. Соберите посты из сабреддита

Вот как получить топовые посты из r/python за последний месяц и сохранить их в pandas DataFrame:

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())

Вы можете заменить .top() на .hot(), .new() или .controversial(), а time_filter принимает значения "all", "day", "hour", "month", "week" или "year".

Небольшое предупреждение: Reddit ограничивает любую ленту примерно 1000 элементами, независимо от того, насколько большое значение вы зададите в limit. Это ограничение на стороне Reddit, а не PRAW.

Шаг 4. Экспортируйте данные Reddit в CSV или Excel

df.to_csv("reddit_python_top.csv", index=False)
df.to_json("reddit_python_top.json", orient="records", lines=True)

PRAW автоматически обрабатывает лимиты: он читает заголовки X-Ratelimit-Remaining и X-Ratelimit-Reset в каждом ответе и при необходимости делает паузы между запросами. Для умеренного скрапинга ручные задержки обычно не нужны.

Как скрапить комментарии Reddit с помощью Python: глубокие вложенные ветки

Именно на комментариях многие и спотыкаются.

Reddit хранит комментарии в виде дерева: у каждого комментария могут быть дочерние ответы, а часть веток скрыта за ссылками "load more comments". В терминологии PRAW такие скрытые ветки представлены объектами MoreComments.

Мысленно это выглядит так:

Submission (t3_abc123)
├── Comment A (top-level)
│   ├── Reply A1
│   │   └── Reply A1a
│   └── Reply A2
├── Comment B (top-level)
│   └── MoreComments (hidden — "load more comments")
└── MoreComments (hidden — "continue this thread")

Используем replace_more(), чтобы получить все скрытые комментарии

Метод replace_more() проходит по дереву комментариев и заменяет каждый плейсхолдер MoreComments реальными комментариями, на которые он указывает:

submission = reddit.submission(id="abcdef")
submission.comments.replace_more(limit=10)  # практический предел для больших веток
all_comments = submission.comments.list()   # плоский список в ширину

Если указать limit=None, метод заменит каждый узел MoreComments без исключения. Но в ветке с 5000+ комментариями это может занять несколько минут, потому что каждая замена — это отдельный API-запрос, возвращающий максимум около 100 комментариев. Для больших обсуждений я рекомендую начинать с limit=10 или limit=20 и увеличивать значение только если нужна полная выборка.

Преобразуем вложенные комментарии в таблицу

rows = []
for c in all_comments:
    rows.append({
        "comment_id": c.id,
        "parent_id": c.parent_id,   # t1_xxx = родительский комментарий, 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)

У верхнеуровневых комментариев parent_id начинается с t3_ (fullname submission). Колонка depth показывает, насколько глубоко вложен комментарий — это удобно для фильтрации и визуализации. Есть один нюанс: len(all_comments) обычно не совпадает с submission.num_comments, потому что удалённые, скрытые и отфильтрованные как спам комментарии не попадают в дерево.

Способ 2: трюк с .json endpoint — скрапинг Reddit без API-ключа

Просто добавьте .json к любому URL Reddit. И всё. Вы получаете структурированный JSON — без авторизации, без регистрации приложения и без установки pip-пакетов.

Пример: https://www.reddit.com/r/python/hot.json

Пользователи форумов постоянно упоминают этот способ, но почти ни один туториал его не разбирает.

Рабочий пример кода на Python

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"])

Заголовок User-Agent критически важен. Reddit блокирует или ограничивает слишком общие user-agent’ы вроде python-requests/2.31.0 — как показал Simon Willison, «это ограничение скорости завязано на user-agent». Используйте такой же описательный формат, как в PRAW.

Как обойти пагинацию с помощью параметра after

По умолчанию .json endpoint возвращает около 25 результатов (максимум 100 за запрос). Чтобы получить больше, используйте курсор after из ответа:

import requests, time

headers = {"User-Agent": "python:reddit-scraper:v1.0 (by /u/yourname)"}
after = None
all_posts = []

for _ in range(10):  # до ~1000 постов
    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 запросов в минуту = один запрос каждые 6 секунд

Значение after — это токен курсора (формат: t3_xxxxxx). Как и у PRAW, жёсткий предел — около 1000 элементов на все страницы вместе.

Ограничения метода .json

  • Нет доступа к глубокому дереву комментариев — вы получите верхний уровень комментариев и один уровень заглушек more, но не автоматическое раскрытие, как у replace_more() в PRAW
  • Только чтение — нельзя голосовать, публиковать или модерировать
  • Около 10 запросов в минуту для неавторизованного доступа — слишком активные циклы вызовут ошибки 429
  • Тот же лимит в 1000 элементов, что и у авторизованного API

Этот способ лучше всего подходит для быстрых одноразовых выгрузок, прототипов или случаев, когда вы не хотите регистрировать API-приложение.

Способ 3: как скрапить Reddit с помощью BeautifulSoup (HTML-парсинг)

Если вы уже занимались веб-скрапингом, то, скорее всего, знаете BeautifulSoup. В случае Reddit есть важный приём: используйте old.reddit.com вместо нового React-интерфейса. Старая версия рендерится на сервере, она легче и гораздо проще для парсинга — несколько гайдов 2025–2026 годов подтверждают, что она всё ещё доступна и удобна для скрапинга.

Настройка requests и BeautifulSoup

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")

Извлечение данных о постах из DOM

На old.reddit.com каждый пост находится внутри <div> с классом thing. Самые стабильные селекторы — это атрибуты data-*:

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,
    })

Лучше опираться на атрибуты data-*, а не на вложенные селекторы по классам — Reddit много раз менял названия классов, а data-атрибуты формируются шаблоном и меняются редко.

Пагинация на old.reddit.com

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)  # вежливая пауза

Когда использовать BeautifulSoup вместо PRAW

BeautifulSoup подходит, если вы хотите освоить DOM-скрапинг, не хотите регистрировать OAuth-приложение или вам нужны кастомные поля, которые PRAW не отдаёт. Но он более хрупкий: HTML-структура может измениться без предупреждения, блокировки IP в 2025 году стали жёстче, чем раньше, и всю логику пагинации и обработки ошибок придётся писать вручную. По надёжности и глубине PRAW выигрывает.

Способ 4: как скрапить Reddit без кода с помощью Thunderbit

Признание: многие, кто ищет «how to scrape Reddit with Python», на самом деле не хотят писать Python. Им нужны данные. Если это про вас, этот раздел — ваш запасной выход.

Thunderbit — это AI-расширение для Chrome, которое наша команда создала именно для таких задач: извлечение структурированных данных со страниц без написания кода.

Шаг 1. Установите Thunderbit и откройте страницу Reddit

Установите расширение Thunderbit для Chrome, затем откройте любой сабреддит или страницу поста Reddit, например reddit.com/r/python.

Ни API-ключа, ни Python-среды, ни команд в терминале.

Шаг 2. Нажмите "AI Suggest Fields" и дайте AI прочитать страницу

Нажмите на иконку Thunderbit в панели браузера, затем выберите "AI Suggest Fields." AI Thunderbit проанализирует страницу и автоматически предложит столбцы вроде Post Title, User Name, Upvotes, Comments Count, Date Posted, Post Description, Community Name и Post URL.

Вы можете добавлять, удалять и переименовывать поля по своему усмотрению. Например, если вам нужны только заголовки и рейтинг, просто удалите остальное.

Шаг 3. Нажмите "Scrape" и экспортируйте данные

Нажмите "Scrape", и Thunderbit соберёт данные, автоматически обработав пагинацию. После заполнения таблицы вы можете сразу экспортировать её в Excel, Google Sheets, Airtable или Notion — без кода для CSV.

Для более глубоких данных в Thunderbit есть скрапинг подстраниц: можно открыть отдельные ветки и автоматически обогатить таблицу данными из комментариев. По смыслу это похоже на replace_more() в PRAW, но без единой строки кода.

Бонус: расписание скрапинга для постоянного мониторинга Reddit

Если вам нужно ежедневно отслеживать сабреддит — например, мониторить упоминания бренда в r/SaaS или обсуждения конкурентов в нишевом сообществе — у Thunderbit есть планировщик повторных запусков. Вы описываете интервал обычным языком, например «каждый будний день в 9 утра», а инструмент делает всё остальное и доставляет свежие данные в подключённую таблицу или базу.

Подробнее о возможностях Thunderbit для скрапинга Reddit можно узнать на YouTube-канале Thunderbit.

Советы и лучшие практики для скрапинга Reddit с помощью Python

Большую часть этих правил я усвоил на собственных ошибках — они актуальны независимо от выбранного способа.

Соблюдайте правила Reddit и лимиты запросов

В Data API Terms Reddit прямо запрещает коммерческий скрапинг без письменного согласия — и это относится ко всем способам доступа, не только к API. Для личного, академического и внутреннего исследовательского использования бесплатный OAuth-тариф и сценарии Thunderbit обычно укладываются в рамки разумного использования.

Шпаргалка по лимитам:

СценарийЛимитЧто произойдёт
Авторизованный доступ (OAuth)60–100 запросов/минPRAW управляет этим автоматически
Неавторизованный доступ (.json, HTML)~10–30 запросов/мин429 Too Many Requests
Обычный User-AgentСильно ограничивается403 Forbidden или тихая блокировка

Всегда задавайте описательную строку User-Agent. Это самая частая причина, по которой новички сталкиваются с ошибками 429 или 403.

Храните и структурируйте данные аккуратно

  • Используйте DataFrame pandas с явным порядком столбцов для предсказуемого экспорта в CSV/Excel
  • Преобразуйте created_utc в читаемое время: pd.to_datetime(df["created_utc"], unit="s")
  • Удаляйте дубликаты по id, если собираете данные из нескольких сортировок (hot, new и top часто пересекаются)
  • Обрабатывайте удалённых авторов: str(post.author) if post.author else "[deleted]"

Корректно обрабатывайте типовые ошибки

ОшибкаПричинаРешение
429 Too Many RequestsПревышен лимит запросов (60–100 req/min для OAuth)Используйте экспоненциальную задержку; проверьте заголовок X-Ratelimit-Reset
403 ForbiddenПлохой User-Agent или заблокированный IPИспользуйте уникальный, описательный UA; убедитесь, что OAuth-приложение активно
None authorУдалённый или заблокированный аккаунтОборачивайте в if post.author else "[deleted]"
prawcore.TooManyRequestsСработал внутренний лимит PRAWУвеличьте ratelimit_seconds или распределите запросы равномерно
5xx или 413 на больших деревьяхПерегрузка backend Reddit на глубоких веткахОберните replace_more() в retry-логику; ограничьте глубину обхода

Сценарии использования скрапинга Reddit: что можно делать с этими данными?

Скрапинг — это только первый шаг. Вот что действительно даёт результат:

  • Отделы продаж: мониторинг r/SaaS, r/smallbusiness или r/Entrepreneur на посты вроде «ищу инструмент, который умеет X». Передавайте найденные совпадения в списки лидов или CRM-воркфлоу. Для ежедневного мониторинга используйте планировщик Thunderbit.
  • Маркетинг и контент-команды: отслеживайте упоминания бренда, анализируйте тональность и извлекайте популярные вопросы для идей контента. Совмещайте выгрузки Reddit с Google Sheets для командной работы.
  • Ecommerce и операционные команды: отслеживайте обсуждения продуктов конкурентов на предмет повторяющихся жалоб. Сабреддиты вроде r/BuyItForLife и нишевые сообщества — настоящая кладезь обратной связи о продукте.
  • Исследователи и аналитики: собирайте NLP-датасеты — в академических статьях 2024 года использовались наборы данных от 37 тыс. комментариев до 54 тыс. комментариев для классификации тональности и эмоций. Корпус, собранный с помощью PRAW, можно использовать как источник, на который можно ссылаться в рецензировании.

Если хотите углубиться в тему сбора данных из соцсетей с помощью эффективных инструментов или извлечения данных с сайтов в Excel, мы подробно разбирали эти сценарии в блоге Thunderbit.

Итоги

Скрапинг Reddit в 2025 году совсем не такой, как два года назад. Изменения API в 2023 году убили Pushshift, закрыли любимые сторонние приложения и ввели платные уровни доступа.

Но бесплатный тариф по-прежнему жив и подходит для личного и академического использования, а способов получить данные стало даже больше.

Краткий итог по каждому методу:

reddit-scraping-methods.webp

Опытный Python-разработчик вы или человек, которому к обеду нужна таблица, — один из этих четырёх способов вам подойдёт. Если хотите вообще обойтись без кода, можете попробовать Thunderbit бесплатно и посмотреть, как он справляется с Reddit за пару кликов. А если хотите дальше прокачивать навыки Python-скрапинга, сохраните этот материал в закладки — я буду обновлять его по мере изменений в экосистеме Reddit.

Заодно посмотрите наши материалы о скрапинге сайтов на Python, лучших Python-инструментах для веб-скрапинга и лучших практиках веб-скрапинга.

FAQ

Законно ли скрапить Reddit с помощью Python?

В Data API Terms Reddit запрещает коммерческий скрапинг без письменного разрешения. Бесплатный OAuth-тариф доступен для личного, некоммерческого и академического использования. С юридической точки зрения это правило не зависит от канала доступа — оно действует, используете ли вы API, .json endpoint или HTML-скрапинг. Всегда проверяйте актуальные условия Reddit перед масштабным сбором данных.

Работает ли PRAW после изменений API Reddit в 2023 году?

Да. PRAW 7.8.1 (октябрь 2024) активно поддерживается и автоматически работает в рамках бесплатного OAuth-тарифа на 100 запросов в минуту. Изменения ценовой политики 2023 года в основном затронули высоконагруженное и коммерческое использование API, а не типовые сценарии скрапинга через PRAW.

Можно ли скрапить Reddit без API-ключа?

Да — .json endpoint и HTML-парсинг через BeautifulSoup работают без API-ключей. Thunderbit тоже не требует API-ключа. Но все три метода для коммерческого использования всё равно подчиняются правилам Reddit.

Как собирать не только посты, но и комментарии Reddit?

С помощью PRAW используйте submission.comments.replace_more(limit=10), а затем submission.comments.list(), чтобы превратить вложенное дерево комментариев в список. В Thunderbit можно использовать скрапинг подстраниц, чтобы автоматически обогатить список постов данными из комментариев каждой ветки.

Какой способ самый быстрый для скрапинга Reddit без программирования?

Расширение Thunderbit для Chrome позволяет собирать посты и комментарии Reddit буквально за два клика и сразу экспортировать данные в Excel, Google Sheets, Airtable или Notion — без Python, без API-ключа и без настройки.

Подробнее

Fawad Khan
Fawad Khan
Фавад зарабатывает на жизнь писательством — и, честно говоря, ему это даже нравится. Он годами разбирался, что делает текст цепляющим, а что заставляет читателя пролистнуть дальше. Спросите его о маркетинге — и он будет говорить часами. Спросите о карбонаре — и он будет говорить еще дольше.

Попробуй Thunderbit

Собирай лиды и другие данные всего в 2 клика. На базе AI.

Получить Thunderbit Это бесплатно
Извлекай данные с помощью AI
Легко передавай данные в Google Sheets, Airtable или Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week