Пишемо Twitter бота з Python та Tweepy

3 хв. читання

Twitter - соціальна мережа для роботів :) Ваші друзі чи фоловери, напевно, мають роботів, а ви навіть не здогадуєтесь про це. В цьому уроці, ми напишемо свого Twitter бота за допомогою Python та Tweepy, а потім запустимо його у вільне плавання...

Спершу нам необхідно створити Twitter App. Перейдіть за посиланням, ввійдіть у свій аккаунт, натисніть кнопку "Create new app" та заповніть всі необхідні поля.

Щойно додаток буде створено, виберіть вкладку "Keys and Access Tokens" та натисніть "Create my access tokens". У вкладці "Permissoins" виберіть поле "Read and Write".

Далі нам потрібно встановити Tweepy. Tweepy - це бібліотека, що використовується для доступу до Twitter API через Python. В командному рядку запустіть:

pip install tweepy

Тепер час робити нашого робота. Створіть новий файл helloworld.py:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import tweepy, time, sys
 
argfile = str(sys.argv[1])
 
#введіть відповідну інформацію з вашого Twitter додатку:
CONSUMER_KEY = '1234abcd...'# замініть це на ваш consumer key, залишаючи лапки
CONSUMER_SECRET = '1234abcd...'# замініть це на ваш consumer secret key
ACCESS_KEY = '1234abcd...'#замініть це на ваш access token
ACCESS_SECRET = '1234abcd...'#замініть це на ваш access token secret
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
 
filename=open(argfile,'r')
f=filename.readlines()
filename.close()
 
for line in f:
    api.update_status(line)
    time.sleep(900)#Tweet every 15 minutes

Це і є наш робот. Створіть новий файл helloworld.txt в тій же теці, що й helloworld.py. Введіть кілька рядків, для прикладу:

Hello World!
Я - робот!
Роботи перевершують людину у всьому!

Впевніться, чи немає пустих лінійок в тексті.

В командному рядку запустіть:

python helloworld.py helloworld.txt

Подивіться на ваш життєпис в Twitter, ви повинні побачити:

Hello world!

Тепер давайте розберемо весь цей код.

import tweepy, time, sys

Тут ми імпортуємо три пакети: tweeppy, sys, time. Що таке tweepy, ви вже знаєте, time дозволяє нам планувати інтервали між твітами, і sys - пакет, необхідний для отримання файлу з текстом твітів, як аргумент командного рядка.

Наступний рядок коду отримує переданий файл для нашого робота:

argfile = str(sys.argv[1])

Ми присвоїли назву текстового файлу(передана як аргумент) змінній argfile. Коли ми запускаємо програму, ми передаємо інтерпретатору Python два аргументи: перший argv[0] - helloworld.py; другий argv[1] - helloworld.txt.

Наступний, великий, шматок коду призначений для підключення робота до вашого Twitter додатку через API:

CONSUMER_KEY = 'YOUR CONSUMER KEY'
CONSUMER_SECRET = 'YOUR CONSUMER SECRET KEY'
ACCESS_KEY = 'YOUR ACCESS KEY'
ACCESS_SECRET = 'YOUR ACCESS SECRET KEY'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)

Тут ми створюємо змінну auth, і через Tweepy авторизуємо наш аккаунт через consumer та access ключі. Далі ми створюємо змінну api, і через Tweepy приєднуємось до Twitter API через auth.

Після цього ми відкриваємо і зчитуємо файл helloworld.txt:

filename=open(argfile,'r')
f=filename.readlines()
filename.close()

Ми використовуємо функцію open() для того, щоб відкрити файл, записаний в змінну argfile. Параметр 'r' вказує на те, що нам необхідно лише прочитати файл. Далі ми всі дані, які є в файлі, записуємо порядково в змінну f. І закриваємо файл.

Останній блок коду (де відбувається вся 'магія'):

for line in f:
    api.update_status(status=line)
    time.sleep(900)#Tweet every 15 minutes

Використовуючи цикл for, ми ітеруємо кожен рядок, записаний в змінній f, і надсилаємо твіт використовуючи api.update_status(line). Тоді ми кажемо нашому роботу подрімати 15 хвилин, і далі писати твіти...

Оскільки Twitter вже не той, час мігрувати на BlueSky. Що відбувається на BlueSky ви можете ознайомитися на bskyreader.xyz

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.8K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація