我有以下代码来获取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限制,您每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
并决定是等待还是继续。
希望能有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句