Вы когда-нибудь хотели сделать карьеру в области веб-разработки, машинного обучения, интеллектуального анализа данных или просто приложений и сценариев? Тогда Python — это правильный язык для изучения! В последние годы Python стал одним из самых популярных языков программирования в мире благодаря своей гибкости и легкому для изучения синтаксису. В этой статье мы разработаем простой скрипт Python, который позволит нам публиковать и получать данные Reddit.
Потребность в ИТ-специалистах постоянно растет, будь то разработка программного обеспечения, веб-разработка, кибербезопасность, сетевое администрирование — список практически бесконечен. Откройте для себя материалы от Vinsloev Academy, которые соответствуют вашим личным целям обучения в области ИТ. — https://vinsloev.com/#/discoveryCenter
Код, написанный в этой статье, можно использовать в качестве первого компонента бота Reddit, однако полноценный бот Reddit выходит за рамки этой статьи. Если у вас возникли проблемы при написании этого кода, я сделал видеоверсию, охватывающую представленный здесь контент: https://youtu.be/JsWlJeeEdzY
Если вы новичок в Python или хотите глубже понять синтаксис и код, представленные в этой статье, я подготовил полный курс по Python, который находится в свободном доступе на YouTube:
Итак, без дальнейших вступлений, давайте начнем. Чтобы следующий код работал, вам необходимо установить/импортировать пакет Praw, так как мы будем использовать его в качестве основы для интеграции с Reddit.
Чтобы узнать больше историй от Vinsloev Academy, зарегистрируйтесь в качестве члена и поддержите нашу работу: https://vinsloev.medium.com/membership
Затем нам нужно создать личное приложение на Reddit, используя нашу собственную учетную запись Reddit, чтобы получить действительный секретный ключ клиента. Личное приложение можно создать на Reddit по следующей ссылке:
https://www.reddit.com/prefs/apps
При создании приложения вы выбираете Веб-приложение с URL-адресом перенаправления, установленным на http://localhosy:8080, как показано на изображении ниже.
Подключение Reddit
После этого вы получите клиентский ключ, который сможете использовать для интеграции с Reddit в свой скрипт Python. Мы создадим метод redditConnect(), используя следующий код Python. Помните, что если вы хотите опубликовать сообщение на Reddit, вам необходимо указать имя пользователя и пароль. Используя client_id и client_secrect, вы можете читать только с Reddit.
def redditConnect(): reddit = praw.Reddit( client_id="Your client id", client_secret="Your client secured", user_agent="my user agent", username="", password="", ) print(reddit.read_only) return reddit
Если вы не укажете имя пользователя и пароль, redditConnect() должен вывести True в консоли, используя print(reddit.read_only).
Читать из субреддита
Далее мы создадим метод, используемый для печати сообщения из данного субреддита.
def printPostFromSubreddit(redditCon, subreddit): for submission in redditCon.subreddit(subreddit).hot(limit=10): print(submission.title)
Приведенный выше метод printPostFromSubreddit() принимает два входа: соединение с Reddit, предоставляемое нашим методом redditConnection(), и субреддит, предоставляемый в виде строки.
При вызове он напечатает Title первых 10 сообщений в категории «Горячие» субреддита.
Опубликовать в субреддите
Последний метод, который мы создадим, — это тот, который позволяет нам публиковать сообщения в субреддите. Этот метод называется postToReddit и принимает 4 входных параметра. Требуется подключение к Reddit (вывод redditConnection()), действительный субреддит для публикации, заголовок публикации и URL-адрес.
def postToReddit(redditCon, subreddit, title, url): redditCon.validate_on_submit = 1 subreddit = redditCon.subreddit(subreddit) subreddit.submit(title, url=url) print("Post submitted")
При правильном вводе метод создаст публикацию и выведет сообщение отправлено на консоль. При разработке этого скрипта вы можете использовать сабреддит r/test, так как в этом субреддите нет правил отправки и вы можете протестировать свой скрипт без блокировки или удаления ваших сообщений.