Est-il possible d’obtenir la liste complète des abonnés d’un compte comptant plus d’un million d’abonnés, comme McDonald's?
J'utilise Tweepy et suis le code:
c = tweepy.Cursor(api.followers_ids, id = 'McDonalds')
ids = []
for page in c.pages():
ids.append(page)
J'essaye aussi ceci:
for id in c.items():
ids.append(id)
Mais j'ai toujours eu l'erreur «Taux limite dépassée» et il n'y avait que 5000 identifiants de suiveurs.
Afin d’éviter la limitation du débit, vous pouvez/devriez attendre avant la demande de page suivante On dirait hacky, mais ça marche:
import time
import tweepy
auth = tweepy.OAuthHandler(..., ...)
auth.set_access_token(..., ...)
api = tweepy.API(auth)
ids = []
for page in tweepy.Cursor(api.followers_ids, screen_name="McDonalds").pages():
ids.extend(page)
time.sleep(60)
print len(ids)
J'espère que cela pourra aider.
Utilisez les arguments de limitation de débit lors de la connexion. L'API se maîtrisera dans la limite du taux.
La pause de sommeil n’est pas mauvaise, j’utilise cela pour simuler un être humain et pour étaler l’activité sur une période de temps avec le contrôle limite de l’api rate.
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True, compression=True)
ajoutez également try/except pour capturer et contrôler les erreurs.
exemple de code https://github.com/aspiringguru/twitterDataAnalyse/blob/master/sample_rate_limit_w_cursor.py
Je mets mes clés dans un fichier externe pour faciliter la gestion.
https://github.com/aspiringguru/twitterDataAnalyse/blob/master/keys.py
La réponse d’Alecxe est bonne, mais personne n’a fait référence à la documentation. Les informations et explications correctes pour répondre à la question se trouvent dans la Documentation API Twitter . De la documentation:
Les résultats sont donnés en groupes de 5 000 ID utilisateur et vous pouvez naviguer dans plusieurs pages de résultats en utilisant la valeur next_cursor dans les requêtes suivantes.