ruby - 使用 Twitter API 获取大量用户列表的简单方法?

标签 ruby twitter

我在几个 Twitter 帐户中拥有大约 200,000 名 Twitter 关注者。我正在尝试查找我的大部分关注者都在关注的 Twitter 帐户。

查看了 Search API 后,我认为这会非常慢,除非我遗漏了什么。

40 次调用使用 GET followers/ids获取 200,000 个帐户的列表。然后我能想到的就是对 GET friends/ids 进行 200,000 次调用.但按照目前每小时 150 次调用的速率限制,这将需要 55 天。即使我可以让 Twitter 稍微达到我的极限,这仍然会很慢。有什么想法吗?

最佳答案

对您的问题的简短回答是,不,确实没有快速的方法来做到这一点。此外,随着 API v 1.0 在 3 月的某个时候被弃用,而 v 1.1 成为国家法律(稍后会详细介绍)。

据我了解,您要做的是为最初的 200,000 个关注者帐户中的每一个帐户编制一个关注帐户列表。然后你想将这 200,000 个原始帐户中的每一个都算作“选民”,然后将这 200,000 个中的任何一个帐户作为“候选人”。最终,您希望能够根据 200,000 人名单中的“投票”对候选人名单进行排名。

一些事情:

1.) 我相信您实际上是在引用 REST API ,而不是搜索 API。

2.) 根据您所说的每小时收到 150 个请求,我可以推断您正在向相关 API 端点发出未经身份验证的请求。这将您限制为只能调用 150 次电话。作为短期修复(即,在接下来的几周内,在 v 1.0 停用之前),您可以改为发出经过身份验证的请求,这会将您的每小时速率限制提高到 350(来源:Twitter API Documentation)。仅此一项,您每小时的通话量就会增加一倍以上。

2.) 如果这是您期望需要持续进行的事情,那么事情会变得更糟。一旦 API 1.0 不再可用,您将受到 v 1.1 API 限制的约束,其中 a.) 无论如何都需要身份验证,并且 b.) 每个 API 方法/端点都受到限制。特别是对于 GET friends/ids 和 GET followers/ids,您只能每 15 分钟调用 15 次每小时 60 次。这意味着您想要进行的那种分析基本上将变得不可行(除非您通过使用多个应用程序/IP 地址等来绕过 Twitter API 服务条款)。您可以阅读所有相关信息 here .可以说,依赖这些 API 端点进行网络分析的研究人员和开发人员对这些变化不太满意,但 Twitter 似乎并没有缓和其在这方面的立场。

考虑到以上所有情况,我最好的建议是在您还可以的时候使用 API 1.0 版,并开始发出经过身份验证的请求。

另一个想法——不确定你的用例是什么——但你可能会考虑从 200,000 名关注者中的每一个中提取 1000 条最新的推文,然后利用每条推文中包含的关于提及的元数据。提及其他用户可能比知道某人只是关注其他人更有信息量。您仍然可以统计提及次数最多的帐户。这里的好处是,从 API 1.0 迁移到 1.1 时,为用户拉入时间线的端点实际上会将其 API 限制从每小时 350 个提高到 720 个(来源:Twitter API 1.1 documentation)

希望这对您有所帮助,祝您好运!

关于ruby - 使用 Twitter API 获取大量用户列表的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9821434/

相关文章:

hadoop - pig :Twitter Sentiment Analysis

Python:LookupError:未知编码:十六进制

python - 为什么perl,ruby使用/dev/urandom

ruby - rbenv 安装停止响应

mysql - 将数据库的第一个实例导出到第二个实例

android - 连接到 s3 存储桶的 Rails 应用程序和 Android 应用程序

ruby - 如何在创建 SMIME 消息时使用 OpenSSL::PKCS7.sign 签名期间使用 SHA1 摘要

objective-c - 从我的iOS 5应用打开Twitter应用

安卓 OAuth : Exception on retrieveAccessToken()

swift - 尝试将 Twitter 用户的用户名保存到 Firebase 数据库 iOS 应用程序