Skip to main content
 首页 » 编程设计

python之Tweepy Hipchat API之除了速率限制

2025年05月04日7三少

我有这个代码来获得 Twitter 用户的关注者:

followers=[] 
for user in tweepy.Cursor(api.followers,id=uNameInput).items(): 
    followers.append(user.screen_name) 

但是,如果将其用于具有多个关注者的用户,则脚本会受到速率限制并停止。我通常会在一段时间内把它说成是真的;尝试,除了 else break loop 但不确定在这种情况下它会去哪里。

请您参考如下方法:

如果您想避免速率限制,您可以/应该在下一个关注者页面请求之前等待:

for user in tweepy.Cursor(api.followers, id=uNameInput).items(): 
    followers.append(user.screen_name) 
    time.sleep(60) 

看起来不漂亮,但应该有帮助。

UPD:据官方twitter limits ,您每 15 分钟的时间间隔只能发出 30 个请求来获得 关注者。

因此,您可以捕获速率限制异常并等待 15 分钟的间隔结束,或者定义一个计数器并确保您在每 15 分钟的间隔内发出的请求不会超过 30 个。

这是一个示例,您可以如何捕获 tweepy 异常并等待 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 剩余的请求数量,然后决定是等待还是继续。

希望对您有所帮助。