我考虑使用Twitter Streaming API(公共流)来跟踪许多用户的最新推文(最多100k)。尽管已经阅读了有关不同速率限制的各种来源,但我仍然有几个问题:
根据文件:The default access level allows up to 400 track keywords, 5,000 follow userids
。跟随更多5k用户的最佳做法是什么?例如,创建20个应用程序以获得20个不同的访问令牌?
如果我只关注一个用户,那么经验法则是#34;你得到所有推文的约1%"确实适用?如果我添加多达5k的用户,这会如何变化?
使用REST API可能是一种合理的替代方案,例如,通过每分钟轮询最新的用户推文?
答案 0 :(得分:2)
关注更多5k用户的最佳做法是什么?例如,创建20个应用程序以获得20个不同的访问令牌?
您不想使用多个应用程序。来自mod的This response总结了情况。 Twitter Streaming API文档还专门调用了尝试执行此操作的开发人员:
每个帐户只能创建一个到公共端点的常设连接,并且使用相同的帐户凭据多次连接到公共流将导致最旧的连接断开连接。
进行过多连接尝试(成功和不成功)的客户都有自动禁止其IP的风险。
费率限制是一种费率限制 - 您不能超过Twitter允许的费用。
如果我只关注一个用户,那么经验法则是#34;你得到约1%的推文和#34;确实适用?如果我添加多达5k的用户,这会如何变化?
1%规则仍然适用,但是非常不可能一个用户无法在给定时间间隔内对所有推文音量的至少1%负责。更多的用户意味着更多的推文,但除非所有5k都是非常大量的推文,否则你不应该有问题。
使用REST API可能是一种合理的替代方案,例如,通过每分钟轮询最新的用户推文?
有趣的想法,但可能不是。您在搜索API中也受到了速率限制。对于GET/statuses/user_timeline
,速率限制为每15分钟180次查询。您只能为使用此终结点的一个用户获取推文,并且常规GET/search/tweets
不接受用户ID作为参数,因此您无法利用该推文(也是180个查询/ 15)最低费率限制)。
Twitter Streaming和REST API概述非常好,值得全面阅读。不幸的是,Tweepy有着不稳定的文档,Twython并没有太好,但是他们都直接利用了Twitter API,这样你就可以很好地理解一切是如何运作的。祝你好运!
答案 1 :(得分:1)
要通过400个关键字和5k粉丝,您需要申请企业访问。
基本 400个关键字,5,000个用户ID和25个位置框 一个允许连接的过滤规则,调整规则所需的断开连接
企业 每个流最多250,000个过滤器,每个最多2,048个字符。 单个连接上有数以千计的规则,使用Rules API添加/删除规则不需要断开连接