在Python中使用tweepy我正在寻找一种方法来列出一个帐户中的所有关注者,包括用户名和关注者数量。 现在我可以用这种方式获取所有id的列表:
ids = []
for page in tweepy.Cursor(api.followers_ids, screen_name="username").pages():
ids.extend(page)
time.sleep(1)
但是有了这个id列表,我无法获得每个id的用户名和关注者数量,因为速率限制超过了...... 我如何完成此代码?
谢谢大家!
答案 0 :(得分:4)
在REST API上,您被允许180 queries every 15 minutes,我猜Streaming API也有类似的限制。你不想太接近这个限制,因为你的应用程序最终会被阻止,即使你没有严格命中它。
由于您的问题与速率限制有关,因此您应该在for
循环中进行睡眠。我会说sleep(4)
应该足够了,但这主要是试验和错误的问题,尝试改变价值并亲眼看看。
像
这样的东西sleeptime = 4
pages = tweepy.Cursor(api.followers, screen_name="username").pages()
while True:
try:
page = next(pages)
time.sleep(sleeptime)
except tweepy.TweepError: #taking extra care of the "rate limit exceeded"
time.sleep(60*15)
page = next(pages)
except StopIteration:
break
for user in page:
print(user.id_str)
print(user.screen_name)
print(user.followers_count)