Skip to content

kid48/Reddit-Scraper-Filter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reddit Scraper & Filter

Этот проект предназначен для сбора постов с Reddit, их фильтрации на основе классификации (например, с помощью LLM) и последующего сбора комментариев для отобранных постов.

Рабочий процесс (Workflow)

Процесс состоит из 4 последовательных шагов:

1. Сбор постов

Скрипт: get_posts.py

  • Скачивает топ постов из указанного мультиреддита (настраивается в скрипте).
  • Сохраняет сырые данные в файл reddit_posts.json.

2. Классификация (Внешний шаг)

Файл: redacted.json

  • На этом этапе необходимо проанализировать reddit_posts.json (вручную или через LLM).
  • Результат анализа сохраняется в redacted.json.
  • Формат записи для каждого поста:
    {
      "id": "post_id",
      "keep": true,
      "tag": "category",
      "reason": "Why we keep this"
    }

3. Фильтрация

Скрипт: filter_posts.py

  • Читает сырые посты из reddit_posts.json и решения из redacted.json.
  • Отбирает только те посты, где keep: true.
  • Формирует файл needed_posts.json, содержащий только полезные посты с добавленными тегами и причинами.

4. Сбор комментариев

Скрипт: get_comments.py

  • Берет список постов из needed_posts.json.
  • Для каждого поста скачивает дерево комментариев через API Reddit.
  • Сохраняет итоговый датасет (посты + комментарии) в final_dataset.json.

Использование

# 1. Скачать посты
python get_posts.py

# 2. (Здесь вы создаете redacted.json на основе reddit_posts.json)

# 3. Отфильтровать список
python filter_posts.py

# 4. Скачать комментарии и собрать итоговый файл
python get_comments.py

Структура файлов

  • get_posts.py — Скрипт начального сбора.
  • filter_posts.py — Скрипт фильтрации.
  • get_comments.py — Скрипт обогащения данными (комментарии).
  • reddit_posts.json — Сырые данные постов.
  • redacted.json — Файл с решениями о классификации.
  • needed_posts.json — Промежуточный файл с отобранными постами.
  • final_dataset.json — Итоговый результат.

Идеи для расширения

  • Интеграция с LLM API: Автоматизировать шаг классификации, подключив API (OpenAI, Anthropic, Gemini) напрямую в пайплайн, чтобы исключить ручное создание redacted.json.
  • База данных: Перенести хранение данных из JSON-файлов в SQLite или PostgreSQL для работы с большими объемами данных и удобного поиска.
  • Веб-интерфейс: Создать простой веб-сервис (например, на FastAPI или Flask) для просмотра собранных постов и комментариев в удобном виде.
  • Скачивание медиа: Добавить функционал для скачивания изображений и видео из постов, помеченных как полезные.
  • Анализ тональности: Добавить анализ тональности (Sentiment Analysis) комментариев, чтобы понимать реакцию сообщества на определенные темы.
  • Планировщик задач: Настроить автоматический запуск скрипта по расписанию (CRON) для постоянного мониторинга новых постов.

About

Этот проект предназначен для сбора постов с Reddit, их фильтрации на основе классификации (например, с помощью LLM) и последующего сбора комментариев для отобранных постов.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages