Solución:
Para evitar el límite de tasa, puede / debe esperar antes de la siguiente solicitud de página de seguidor. Parece hacky, pero funciona:
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)
Espero que ayude.
Utilice los argumentos de limitación de velocidad al realizar la conexión. La API se autocontrolará dentro del límite de velocidad.
La pausa para dormir no es mala, la uso para simular a un humano y para distribuir la actividad en un marco de tiempo con la limitación de la tasa de API como control final.
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True, compression=True)
también agregue try / except para capturar y controlar errores.
código de ejemplo https://github.com/aspiringguru/twitterDataAnalyse/blob/master/sample_rate_limit_w_cursor.py
Guardo mis claves en un archivo externo para facilitar la gestión.
https://github.com/aspiringguru/twitterDataAnalyse/blob/master/keys.py
La respuesta de alecxe es buena, sin embargo, nadie se ha referido a los documentos. La información y la explicación correctas para responder a la pregunta se encuentran en la documentación de la API de Twitter. De la documentación:
Los resultados se dan en grupos de 5000 ID de usuario y se puede navegar por varias “páginas” de resultados utilizando el valor next_cursor en solicitudes posteriores.