0

我每 30 分钟将 Twitter 的 Y 国热门话题存储在一个数据库中。这没问题。现在,我希望获得尽可能多的与这些热门话题相匹配的推文,以用于研究目的。

因为我想研究趋势的模式,所以我想要以检测到趋势峰值之日为中心的至少 3 天的连续推文数据,用于每个趋势主题。为了实现这一点,我想到了执行以下操作:

假设我在第 X 天。我可以检索第 X-2 天的独特趋势,并且对于每个趋势,寻找与区间 [X-3, X-1] (即 3 天)内的趋势匹配的推文。但是,这里的问题是 Twitter 速率限制。如果我在第 X-2 天有 100 个热门话题,并且我发出 20 个 GET 搜索请求/趋势,我最终会发出总共 2,000 个请求,这超过了 Twitter 每小时 350 个速率的限制。如果make 300 req/hour,那么只需要一天的数据就需要6个多小时......

有人知道获取与趋势相关的推文的任何其他(更好)方法吗?

提前致谢

4

1 回答 1

1

Twitter 流媒体 API?

Twitter Streaming API 不提供任何过去的推文。您仅从建立服务器连接时开始接收推文。搜索 API 将返回与当前查询匹配的推文,理论上最多 7 天,但这完全取决于 Twitter 的当前负载。(注意*-有时这个时间间隔短至 24 小时。此外,您受限于最多只能接收 1,500 条推文,无论它们有多旧。)

有没有办法从流媒体中获得更多推文?

我不知道。但是,如果您正在考虑在搜索或流式 API 之间切换,请参考以下信息。

请选择您的案例:

  • 如果您需要实时数据并且您的请求数量很高:

使用流式 API

流式处理 API 要求您保持连接处于活动状态。这需要一个无限循环的服务器进程,以获取最新的推文。

优势

1)获取结果的延迟:使用此方法传递的推文基本上是实时的,从发布推文到从API接收到推文之间最多有一两秒的延迟

2) 不受速率限制。

  • 如果您需要聚合数据而不管其时间范围如何,并且您的请求数量不高:

去搜索 API

搜索 API 是这两种方法中较容易实现的,但它有速率限制。每个请求将返回最多 100 条推文,您可以使用页面参数请求最多 15 个页面,理论上最多为 1,500 条推文一个查询。

优势

1) 查找过去的推文:搜索 API 在这方面默认胜出,因为流式 API 不传递任何过去的推文

2)更容易实施

于 2012-03-28T08:12:12.907 回答