我试图找到一种方法,在tweepy中创建一个reserve limits,以便处理twitter API发送的剩余限制错误。我使用以下代码:
limits = myapi.rate_limit_status()
remain_search_limits = limits['resources']['search']['/search/tweets']['remaining']
print remain_search_limits
print limits
实际上上面的代码打印了:
^{pr2}$奇怪的是,每次我打印resident_search_limits时,我得到的答案是179。在我能够再次从twitter获取数据之前,我应该使用什么来哭泣?在
我的最终代码如下:
limits = api.rate_limit_status()
remain_follower_limits = limits['resources']['followers']['/followers/ids'] ['remaining']
with open("ids.txt") as f:
content = f.readlines()
ids = []
for page in tweepy.Cursor(api.followers_ids, user_id="dankanter").pages():
while remain_follower_limits >4:
limits = api.rate_limit_status()
remain_follower_limits = limits['resources']['followers']['/followers/ids']['remaining']
ids.extend(page)
else:
time.sleep(60)
print ids
print len(ids)
但有时它会在行限制中卡住=api.rate\u limit_状态()在while循环内。如果一个用户有数百万个用户,它只返回一个子集,而这个子集实际上非常小。在
[总结、澄清和阐述最初帖子中的评论线索]
我也得到同样的价值。。。除非/直到我调用
myapi.search
,然后返回一个较低的值。在limits['resources']
包含不同资源族(API调用类型)的字典列表:['account', 'blocks', 'users', 'friends', 'help', 'saved_searches', 'lists', 'search', 'application', 'trends', 'followers', 'favorites', 'friendships', 'geo', 'direct_messages', 'statuses', 'mutes']
。在与资源族关联的每个词典都包含一个或多个键,这些键表示与该族关联的特定方法。每个键的值依次是带有}键的字典。在
'limit'
、'remaining'
和{application/rate_limit_status方法的文档描述如下:
由于
limits['resources']['search']['/search/tweets']['remaining']
表示您可以进行的剩余搜索调用,所以只要这个数字大于零,您就可以继续进行其他的search
调用;当它达到零时,您需要等待直到到达reset
时间(在Epoch format)之前。在对于后续注释,}的键,并且可以使用与}调用。在
limits['resources']['followers']
资源家族包含方法'/followers/ids'
和{search
相同的模式访问{您可以在这个线程中找到一些其他有用的信息:Return the number of remaining hits tweepy
相关问题 更多 >
编程相关推荐