Для удобного получения твитов пользователей будем использовать библиотеку tweepy.
In [ ]:
import warnings
warnings.filterwarnings('ignore')
import tweepy
Вводим данные разработчика.
In [ ]:
access_token = ""
access_token_secret = ""
consumer_key = ""
consumer_secret = ""
# Чтобы получить данные разработчика, нужно зарегистрироваться на https://dev.twitter.com и добавить свое приложение.
Получаем доступ к Twitter API.
In [ ]:
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
Теперь считаем твиты каждого моего подписчика. Будем брать последние 100 твитов.
In [ ]:
def limit_handled(cursor):
while True:
try:
yield cursor.next()
except tweepy.RateLimitError:
time.sleep(15 * 60)
print('raised RateLimitError')
data = {}
for friend in limit_handled(tweepy.Cursor(api.friends).items()):
user_timeline = api.user_timeline(screen_name=friend.screen_name, count=100)
tweets = []
for status in user_timeline:
tweets.append(status.text)
# У некоторых пользователей может быть меньше 100 твитов, поэтому будем дополнять их пустыми строками,
# чтобы дальше было удобнее работать с записью в файл
while (len(tweets) < 100):
tweets.append('')
data.update({friend.screen_name : tweets})
Данные получены, теперь нужно их красиво оформить в файл.
Для этого запишем данные в DataFrame
из библиотеки pandas
.
In [ ]:
import pandas as pd
df = pd.DataFrame.from_dict(data)
df.to_csv('twitter-data.csv', encoding='utf8')