Мы рассмотрим документацию API и посмотрим, что мы можем с ней сделать и как создать бота Reddit. Python предоставляет модуль синтаксического анализатора для работы с API Reddit под названием Praw. Во-первых, установите последнюю версию Python, если у вас ее нет, вам понадобится Reddit API. Перейдите по этому URL-адресу https://www.reddit.com/prefs/apps/ и выберите Создать приложение.

Дайте ему имя. Вы должны выбрать URI перенаправления (по какой-то глупой причине, глупой, потому что я создаю бота, а не веб-приложение, но что угодно). Я выбрал http://127.0.0.1 Теперь вы получите client_id (красное поле внизу) и секрет (синее поле внизу). Запишите это, но держите в секрете. Наконец, установите приведенный ниже модуль в python, просто скопируйте приведенную ниже команду и вставьте ее в командную строку, модуль python Pip загрузит и установит его для вас.

pip install praw

Кодирование

Создайте py-файл с любым именем и откройте его в редакторе кода. На первом этапе мы инициализируем данные аутентификации моей учетной записи Reddit.

В строке 2 я импортирую модуль Praw, а в строках с 5 по 9 мы добавим информацию о нашем пользователе и API. client_id будет идентификатором, который мы получим во время создания API, а client_secret — это ключ API, который вы получили при создании своего приложения API. Имя пользователя и пароль — это данные для входа в вашу учетную запись Reddit. Строка 12 показывает, что мы передаем эти данные в качестве параметра в класс praw.Reddit(), из которого он войдет в вашу учетную запись Reddit и получит доступ к своей базе данных. Мы успешно настроили нашу аутентификацию, наша следующая цель — посмотреть, что мы можем сделать с API.

Доступ к сабреддиту:

В Reddit есть несколько сообществ, известных как сабреддиты. Мы можем получить экземпляр субреддита, используя метод subreddit. Чтобы найти самую верхнюю отправку в сабреддите с помощью API, мы можем использовать subreddit.top() метод. В сабреддите есть несколько отправленных сообщений, и мы можем перебирать каждую отправку, чтобы использовать этот метод. Reddit API предоставляет нам следующую команду для доступа к отправке.

1: растет
2: новый
3: горячий
4: позолоченный
5:спорный
6: вверху

В строке 2 кода мы определили имя сабреддита, а в строке 21 нам пришлось использовать python for loop для перебора представлений, в условиях цикла мы использовали submission.top(), передав параметр limit, это сообщит API, сколько лучшие материалы, которые нам нужны. Я вручную добавил 1, но вы можете добавить любое число, это может быть 3, 5 или обычно 10. В следующих строках мы использовали submission.title, submission.url, submission.Id, чтобы получить детали каждой отправки в цикле, который мы получили, также будет отображаться submission.score плюсы за подачу.

Комментарии:

В этом разделе мы рассмотрим документацию по API, чтобы узнать, как мы получаем доступ к комментариям к сообщению, имени их автора и т. д.

В строке 17 мы использовали get_subreddit(), передав имя сабреддита, а в следующей строке с помощью get_comment() удаляем все комментарии к сообщению сабреддита. В строках с 19 по 21 мы используем цикл for для повторения наших комментариев и отображения содержимого и его идентификатора. если вы хотите удалить определенное количество комментариев, просто добавьте limit=10 или любое другое число в get_comment().

Со строки 19 по 20 мы использовали функцию submission, передав URL сообщения Reddit в качестве параметра, а в следующей строке мы вызываем reply() функцию, которая принимает текстовый параметр, это может быть комментарий, который вы хотите опубликовать в Пост на Реддите. Если вы выполните код и проверите URL-адрес публикации, вы увидите, что комментарий был успешно опубликован.

Теперь мы получим информацию о конкретном комментарии с помощью API. Первое, что нам нужно сделать, это получить идентификатор комментария. Если вы видели код, я получил идентификатор комментария сообщения, который равен fvib7aw Inline 22, мы использовали reddit.comment() by передавая comment_id в качестве параметра в функции класса praw, а затем в строках с 25 по 28 мы получаем информацию о комментарии, например comment.body для получения текста комментария, comment.permalink — это URL-адрес комментария, comment.score получит общее количество голосов комментария, включая голоса за и против, comment.author будет отображать имя автора комментария.

Голосование за и против:

Голосование против конкретного комментария можно сделать, получив comment_id и передав его в reddit.comment() , а затем вызовите comment.downvote() функцию, которая понизит оценку комментария, проверьте вывод, чтобы увидеть, как это работает, и то же самое в случае голосования, мы используем comment.upvote().

Вывод:

Score before downvoting: 25
Score after downvoting: 24

Представление на Reddit:

Хорошо Итак, мы увидели, как мы получаем самую верхнюю и последнюю публикацию в сабреддите и получаем комментарии, отвечаем на комментарий, голосуем за и против комментария в сабреддите, теперь мы узнаем, как отправить заявку на Reddit с помощью их API.

Как вы видели в коде, мы предоставили наш логин и данные API модулю Praw, затем в строках с 17 по 19 мы определяем переменные post_title и pos_body, содержащие заголовок и содержимое сообщения, а в следующей строке мы выбираем субреддит и используя функцию submit(), передав заголовок и тело в качестве параметра. Это отправит нашу публикацию в выбранный нами сабреддит.

Вывод:

Что ж, мы рассмотрели большинство основных вещей, которые может сделать Reddit, но вы можете найти гораздо больше в документации, как начать комментарий и как найти текст в комментарии и т. д., вы можете узнать больше об API, посещение этого documentation URL. Вы изучили все основы, необходимые для создания бота. Я надеюсь, что эта статья поможет вам в будущем, и не стесняйтесь поделиться своим ответом.