我有以下代码来获取Twitter用户的关注者:
followers=[]
for user in tweepy.Cursor(api.followers,id=uNameInput).items():
followers.append(user.screen_name)
但是,如果将其用于具有多个关注者的用户,则脚本将获得速率限制并停止。我通常会把这说成真的。尝试,除了其他中断循环,但不确定在这种情况下它将去哪里。
最佳答案
如果您想避免速率限制,则可以/应该等待下一个关注者页面请求:
for user in tweepy.Cursor(api.followers, id=uNameInput).items():
followers.append(user.screen_name)
time.sleep(60)
看起来不漂亮,但应该有帮助。
UPD:根据官方的twitter limits,您每15分钟只能发送30个请求才能获得
followers
。因此,您可以捕获速率限制异常并等待15分钟间隔结束,或者定义一个计数器并确保每15分钟间隔不超过30个请求。
这是一个示例,说明如何捕获蠕虫异常并等待15分钟,然后再转到下一部分关注者:
import time
import tweepy
auth = tweepy.OAuthHandler(..., ...)
auth.set_access_token(..., ...)
api = tweepy.API(auth)
items = tweepy.Cursor(api.followers, screen_name="gvanrossum").items()
while True:
try:
item = next(items)
except tweepy.TweepError:
time.sleep(60 * 15)
item = next(items)
print item
虽然不确定这是最好的方法。
UPD2:还有另一个选项:您可以检查rate_limit_status,查看对
followers
的请求量还有多少,然后决定是等待还是继续。希望能有所帮助。
关于python - Tweepy Hipchat API-除了速率限制?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18053514/