获取推特用户的所有推文,限速问题

时间:2011-04-15 17:55:25

标签: twitter rate-limiting

我一直试图获得一些公共(未锁定)Twitter用户的所有推文。 我正在使用REST API: http://api.twitter.com/1/statuses/user_timeline.json?screen_name=andy_murray&count=200&page=1'

虽然超过了16页(页面参数)但它允许,因此可以获得3200条推文。 然后我发现这种呼叫的速率限制是每小时150(!!!),这意味着一小时内不到10个用户查询(每个16页)。 (如果您进行身份验证,则允许350,但数量仍然非常低)

关于如何解决这个问题的任何想法?流式\搜索API似乎不合适(?),并且有一些Web服务似乎确实有这些数据。

由于

3 个答案:

答案 0 :(得分:2)

您可以将请求排队并按照速率限制允许进行排队,也可以将经过身份验证的请求作为多个用户进行排队。每位用户每小时有350个请求。

答案 1 :(得分:2)

一种方法是使用streaming API(或者更具体的user streams,如果它更适合您的应用程序)开始收集目标用户发送的所有推文无需担心传统的速率限制,然后使用REST API回填这些用户的历史推文。

当然,您每小时只有350个经过身份验证的请求,但如果您全天候运行收割机,那么每天仍然有1,680,000条推文(350个请求/小时* 24小时/天* 200个推文/请求)。

因此,例如,如果您决定每个用户每天提取1,000条推文(每次通话5次API调用@ 200条推文),则每天可以运行1,680个用户时间轴(每小时70个时间轴)。然后,在第二天,从您停止的位置开始,使用每个用户最早的状态ID作为statuses/user_timeline请求中的max_id参数来获取下一个1,000条推文。

流媒体API将让您及时了解目标用户发布的任何新状态,并且REST API调用很快就会在大约四天内开始进入Twitter对这些用户的历史推文的获取限制。之后,您可以通过将其添加到follow列表来添加其他用户以从流端点获取前进,并且您可以停止为已超出的用户获取历史推文,并开始获取新目标组鸣叫。

答案 2 :(得分:0)

Search API似乎适合您的需求,因为您可以搜索屏幕名称。 Search API速率限制高于REST API速率限制。

相关问题