(Или ползать по Reddit в поисках блокнотов Colab)
Reddit — золотая жила знаний. Вы можете найти информацию буквально обо всем, если наткнетесь на нужный саб Reddit. Но наличие такого большого количества информации также означает, что много раз вы ищете иголку в стоге сена.
Трудно найти контент, который вам нравится, среди такой горы информации. Как кто-то, кто очень интересуется ИИ, я хотел посмотреть на новые блокноты Google Colab на сабреддите r/MachineLearning. Но ручное усилие, необходимое для просмотра постов, отличных от кошачьего видео-реддита, слишком велико.
Кто-то однажды сказал мне за чашечкой обычного кофе: «Если что-то стоит делать, стоит написать программу для этого». С этим избитым советом я поискал в Интернете решение, требующее переосмысления. Решение, которое я в конце концов выбрал, — создать своего собственного бота для Reddit, чтобы курировать ваш контент на Reddit.
"Если так будет продолжаться, у человека атрофируются все конечности, кроме кнопочного пальца".
– Фрэнк Ллойд Райт, архитектор
Давайте углубимся в мельчайшие детали. Перед этим назовем нашего бота brevity_bot. 🤖
Огромное спасибо этой статье: https://new.pythonforengineers.com/blog/build-a-reddit-bot-part-1/, это помогло мне создать модифицированное решение для анализа сообщений с помощью Google Colab.
Предпосылки
Мы будем использовать PRAW: The Python Reddit API Wrapper на python, чтобы легко общаться с Reddit из нашей программы.
Сначала давайте создадим новый каталог для программы, используя терминал/командную строку.
mkdir brevity_bot cd brevity_bot
Установка и настройка praw
Установка проста через `pip`
pip install praw
После установки вам необходимо создать файл `praw.ini` в вашем локальном каталоге. Этот файл `praw.ini` используется для установки конфигураций, чтобы praw мог взаимодействовать с вашей учетной записью Reddit. Код ниже создаст ini-файл с пустой строкой в файле windows.
echo.> praw.ini
люди, работающие в Linux-системах, могут использовать сенсорную команду.
touch praw.ini
Вы можете получить информацию о конфигурации того, что нужно поместить в файл `praw.ini`, здесь. Или вы можете скопировать снизу и вместо этого ввести свои собственные значения.
если вы посмотрите на последний раздел файла, вы найдете блок `[brevity_bot]`. краткость bot — это имя нашего бота. Ниже вы увидите такие поля, как `client_id` и `client_secret`. Для получения этих значений вам необходимо зарегистрировать приложение на странице разработчика Reddit.
Регистрация вашего приложения на Reddit для разработки
- перейдите на https://www.reddit.com/prefs/apps.
- нажмите «Создать приложение» внизу страницы.
- используйте переключатель скрипта, чтобы обозначить, что вы хотите запустить скрипт
4. Вы получите секрет и идентификатор для своего приложения. Поместите эти значения и учетные данные в файл praw.ini.
5. Чтобы ваш бот мог взаимодействовать с Reddit (например, отвечать), вам нужно также указать praw.ini свое имя пользователя Reddit и пароль.
Создание субреддита Reddit для тестирования (необязательно)
Чтобы вы могли спокойно протестировать своего бота без блокировки Reddit, настоятельно рекомендуется создать свой собственный саббреддит на Reddit.
Однако, если вы просто следуете руководству, то я уже создал сабреддит по адресу https://www.reddit.com/r/botjungle/. В приведенном ниже коде используется этот субреддит.
Кодирование фактической программы в python
Давайте создадим файл python для программы. На окнах-
echo.> brevity_bot.py
снова в Linux (`touch brevity_bot.py`)
Введите следующий код в brevity_bot.py
- Первый шаг — импорт всех библиотек — praw, os (для файловых операций), re (для сопоставления регулярных выражений).
- Мы инициализируем praw именем бота. Имя бота совпадает с тем, которое вы указали в
praw.ini
. Subreddit — это субреддит, в который пойдет бот. - Наш бот будет просматривать топ-5 новых постов саббреддита. Это делается путем повторения `subbreddit.hot(limit=5)`. Этот лимит говорит о том, сколько постов он будет просматривать. Будьте осторожны, чтобы не увеличить его слишком сильно. При просмотре сообщений нам нужно убедиться, что бот не отвечает на одни и те же сообщения снова и снова. Поэтому мы создали
posts_replied_to.txt
, чтобы отслеживать все сообщения, на которые уже ответили. - Как только мы находим определенный текст в сообщении, мы используем `submission.reply` для ответа.
Нашим следующим шагом должно быть сохранение содержимого этих сообщений где-нибудь. Код для сохранения поста и полной проверки кода -
Заключение
Вот и все! вы закодировали бота для Reddit, который будет работать на вас. Надеюсь, вам было весело. Комментарии приветствуются как по техническим аспектам, так и по представлению этой статьи. "Спасибо!"