通过 Tweepy 在 Twitter 中获取所有关注者 ID

新手上路,请多包涵

是否可以获取像麦当劳这样拥有超过一百万粉丝的帐户的完整粉丝列表?

我使用 Tweepy 并遵循代码:

 c = tweepy.Cursor(api.followers_ids, id = 'McDonalds')
ids = []
for page in c.pages():
     ids.append(page)

我也试试这个:

 for id in c.items():
    ids.append(id)

但我总是收到“超出速率限制”的错误,并且只有 5000 个关注者 ID。

原文由 user1056824 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

为了避免速率限制,您可以/应该在下一个关注者页面请求之前等待。看起来很老套,但有效:

 import time
import tweepy

auth = tweepy.OAuthHandler(..., ...)
auth.set_access_token(..., ...)

api = tweepy.API(auth)

ids = []
for page in tweepy.Cursor(api.followers_ids, screen_name="McDonalds").pages():
    ids.extend(page)
    time.sleep(60)

print len(ids)

希望有所帮助。

原文由 alecxe 发布,翻译遵循 CC BY-SA 3.0 许可协议

建立连接时使用速率限制参数。该 api 将在速率限制内自行控制。

睡眠暂停还不错,我用它来模拟人类并在一个时间范围内分散活动,并将 api 速率限制作为最终控制。

 api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True, compression=True)

还添加 try/except 来捕获和控制错误。

示例代码 https://github.com/aspiringguru/twitterDataAnalyse/blob/master/sample_rate_limit_w_cursor.py

我将我的密钥放在一个外部文件中,以便于管理。

https://github.com/aspiringguru/twitterDataAnalyse/blob/master/keys.py

原文由 CodingMatters 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏