从Twitter获取有关追随者的大量数据

时间:2019-05-05 09:42:24

标签: api twitter

鉴于Twitter中的页面A和页面B,我想找到同时跟随页面A和B的所有用户。

Twitter确实提供了一种找到关注者的方法:GET followers/ids

但是,每个请求返回的数目不超过5000,并且每15分钟最多只能发送15条消息,平均速度为每分钟5000个用户,这显然不适用于拥有数百万个关注者的较大帐户。< / p>

有人知道最好使用dev API来获取此类数据的更好方法吗?我的意思是,从技术上讲,我可以尝试模拟浏览器的滚动,但这会非常缓慢,混乱,并且Web客户端可能会使用相同的API。

UPD:

此外,我认为我们可以缩小需要下载的数据量。例如,重叠的数据将需要按年龄,性别或位置进行过滤,因此,如果有一种方法可以将这些信息作为参数来提供,从而获得较少的数据,那将很好。

此类API的示例:来自VK的user.search方法。您可以指定 group_id (相当于正在关注的Twitter帐户)和该组的搜索关注者,并通过其他参数进行过滤。

3 个答案:

答案 0 :(得分:2)

我认为这并不容易实现,因为关注者的数量受64int限制,即255,486,129,307。我认为任何API都无需流式传输或批量处理就无法返回该数量的数据。这就是为什么它成碎片且有局限性的原因。

我建议使用某些流应用程序(例如Kafka,Amazon Kinesis或Azure Event Hub)。

Twitter API支持流(Twitter API stream)意味着您可以在生产者(从源获取数据的应用)中请求所需的信息流,然后将数据发送/流至主题,然后从那里获取数据分批显示它。

当然,有两种情况或者您需要在数据库中存储关注者并更新更改,或者每次从头开始读取流时都会导致明智的延迟。

我建议将流数据保存在DB中,并在更改时对其进行更新。 (NoSQL将是一个完美的解决方案)

答案 1 :(得分:1)

您正在正确地找到拥有数百万个追随者的费时任务的帐户之间的普通用户
您可以使用预提取的用户来检查其连接,例如,您可以看到用户A的追随者与用户B有连接。
通过此api调用

  

https://api.twitter.com/1.1/friendships/show.json

我在网上发现的另一件好事是http://tweepdiff.com,它在帐户之间提供了一些共同点,但并非全部

答案 2 :(得分:0)

我的猜测是这是有意限制。 Twitter并不真正希望让您所有收集他们的用户数据,并且这样的界面可以使您非常快地进行操作。大量获取追随者数据将给他们的服务器带来沉重负担,除非您付出了很多钱,否则拥有所有这些都不符合他们的业务利益。

在没有他们帮助的情况下,您最好的选择可能是获取多个API密钥并从VPN后面的服务器中拉出,但最终他们可能会找出您的答案。

如果您有有效的业务原因可以帮助他们获取大量数据,我建议您与他们联系并询问您是否可以直接导出JSON / API以进行下载。不过,这可能是一个很沉重的请求。