web-dev-qa-db-fra.com

Obtenir la chronologie complète de l'utilisateur d'un utilisateur Twitter

Je veux obtenir tous les tweets d'un utilisateur d'un utilisateur Twitter et jusqu'à présent, c'est ce que j'ai trouvé:

import Twitter
import json
import sys
import tweepy 
from tweepy.auth import OAuthHandler


CONSUMER_KEY = ''
CONSUMER_SECRET= ''
OAUTH_TOKEN=''
OAUTH_TOKEN_SECRET = ''

auth = Twitter.OAuth(OAUTH_TOKEN,OAUTH_TOKEN_SECRET,CONSUMER_KEY,CONSUMER_SECRET)


Twitter_api =Twitter.Twitter(auth=auth)

print Twitter_api

statuses = Twitter_api.statuses.user_timeline(screen_name='@realDonaldTrump')
print [status['text'] for status in statuses]

Veuillez ignorer les importations inutiles. Un problème est que cela n'obtient que les tweets récents d'un utilisateur (ou les 20 premiers tweets). Est-il possible d'obtenir le tweet de tous les utilisateurs? À ma connaissance, le GEt_user_timeline (?) N'autorise qu'une limite de 3200. Existe-t-il un moyen d'obtenir au moins 3200 tweets? Qu'est-ce que je fais mal?

11
Vin23

Il y a quelques problèmes avec votre code, y compris certaines importations superflues. En particulier, vous n'avez pas besoin de import Twitter et import tweepy - tweepy peut gérer tout ce dont vous avez besoin. Le problème particulier que vous rencontrez est celui de la pagination, qui peut être géré dans tweepy en utilisant un objet Cursor comme ceci:

import tweepy

# Consumer keys and access tokens, used for OAuth
consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''

# OAuth process, using the keys and tokens
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

# Creation of the actual interface, using authentication
api = tweepy.API(auth)

for status in tweepy.Cursor(api.user_timeline, screen_name='@realDonaldTrump', Tweet_mode="extended").items():
    print(status.full_text)
18
asongtoruin