我目前正在尝试检索一些拥有大量关注者的大帐户的关注者。
我正在使用 Tweepy 和这段代码(带光标):
follower_cursors = tweepy.Cursor(api.followers, id = id_var,count=5000)
for friend in follower_cursors.items():
好吧,如果我不指定计数,默认情况下每页只显示 20 个结果,但从 Twitter API 文档来看,它可以提供 5000 个关注者,我尝试将其设置为最大值。
然而,这似乎没有被考虑在内,并且每个页面最多包含 200 个条目,这是一个真正的问题,因为您将更容易触发速率限制。
我做错了什么?有没有办法让 Tweepy 请求 5000 个 ID 的页面,以最小化请求并覆盖这个默认最大值 200?
Thanks!
你可以使用光标为pages http://pythonhosted.org//tweepy/cursor_tutorial.html#items-or-pages代替items
,然后处理每页的项目:
for page in Cursor(api.user_timeline).pages():
# page is a list of statuses
process_page(page)
# or iterate over items in `page`
我没有看到限制tweepy 光标 https://github.com/tweepy/tweepy/blob/master/tweepy/cursor.py对于返回的结果,因此它应该返回尽可能多的结果。
之前的回答:
每页最大结果是由 Twitter API 强制执行的,而不是由 tweepy 强制执行。 你是应该对每次调用 200 个结果的列表进行分页,其中Cursor
已经为你做了。如果有 5000 名关注者,则每个查询最多 200 个结果,您只使用 25 次调用。您还有 4975 个电话可以做其他事情。
要超过每小时 5000 次的速率限制,您需要每分钟至少执行 83 次调用或每秒 1.4 次调用。
Note that 'read limits' are per-application but 'write limits' are per user. So you could split your task between two or more apps* if they are read intensive.
考虑使用流媒体API https://dev.twitter.com/docs/streaming-apis相反,如果它更适合您的需求。
*: Though I'm sure Twitter has controls in place to prevent abuse.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)