Верните и сохраните 800 твитов друзей, используя Tweepy - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь извлечь твиты моих друзей, используя api.home_timeline.Я не хочу передавать его в потоковом режиме, но я хочу сохранить 800 твитов, отображаемых имен и их лайков / избранных в файл CSV.Twitter позволяет только 200 твитов одновременно.Учитывая мои ключи, как уже указано, это то, что у меня есть:

 def data_set(handle):
    auth=tweepy.OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET)
    auth=set_access_token(ACCESS_KEY,ACCESS_SECRET)
    api=tweepy.API(auth)
    count_tweets=api.home_timeline(screen_name=handle,count=200)
    twits=[]
    tweet_data=[tweet.text for tweet in count_tweets]

    for t in count_tweets:
       twits.append(t)

if __name__== '__main__':
tweet_data('my twitter name')

Мой первоначальный план состоял в том, чтобы иметь несколько count_tweets, таких как count_tweet1 и т. Д. Я не уверен, как поступить с остальными.Любые предложения с благодарностью.

1 Ответ

0 голосов
/ 07 февраля 2019

Твиттер следует нумерация страниц .На каждый ваш запрос выдается максимум 200 твитов (в случае home_timeline ).200 твитов, которые вы получаете, основаны на популярности.Вы можете получить все твиты с временной шкалы пользователя, перебирая страницы.Tweepy предоставляет Cursor функциональность для перебора страниц

Отредактированный код для вашего случая:

def data_set(handle):
    auth=tweepy.OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET)
    auth=set_access_token(ACCESS_KEY,ACCESS_SECRET)
    api=tweepy.API(auth)
    tweet_data = []
    for page in tweepy.Cursor(api.user_timeline, screen_name=handle, count=200, tweet_mode='extended').pages():
        for tweet in page:
            tweet_data.append(tweet.full_text)
    return tweet_data

## Not sure why the following lines are needed
#    twits=[]
#    tweet_data=[tweet.text for tweet in count_tweets]

#    for t in count_tweets:
#        twits.append(t)

if __name__== '__main__':
    print(data_set('my twitter name'))

Я использовал api.user_timeline вместо api.home_timeline в коде, как вы сказали вампытаемся получить твиты из ваших друзей.Если ваш вариант использования удовлетворен api.home_timeline, вы можете заменить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...