【问题标题】:Getting as much tweets associated to a day's trends as possible尽可能多地获取与一天的趋势相关的推文
【发布时间】:2012-04-11 01:36:42
【问题描述】:

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

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

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

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

提前致谢

【问题讨论】:

    标签: twitter tweets


    【解决方案1】:

    Twitter 流媒体 API?

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

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

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

    请选择您的案例:

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

    Go for Streaming API

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

    优势

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

    2) 不受速率限制。

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

    搜索 API

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

    优势

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

    2)更容易实现

    【讨论】:

    • 请不要发布重复的答案。如果两个(或更多)问题确实可以用完全相同的答案(至少是这个大小)来回答,那么它们就是重复的,否则答案(至少其中一些)是不合适的。相反,针对手头的具体问题调整每个答案。
    • 感谢您的回复。因为我需要获取与过去趋势相对应的过去数据,所以我当然没有使用 Streaming API。所以问题将是如何使用搜索 API 来最大化检索到的推文数量鉴于速率限制......我现在正在做的是获取推文、睡眠、继续获取推文、睡眠等。它可以工作但在那里一定是更好的选择...
    • @LasseV.Karlsen 我认为答案对两者都有帮助,所以粘贴了。感谢您提供的信息。下次将共享链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多