1

我有一个脚本,它使用twitter 流 api将一个短语(例如“python”)的传入推文存储到数据库表“A”中。稍后,另一个脚本使用twitter search api搜索相同的短语并将结果存储到表“B”中。我的问题是为什么“A”中有一些推文不在“B”中,反之亦然。

我可以想到在“B”而不是“A”中有推文的一个原因:

“A”仅包含在流 api 启动后发布的推文,而搜索 api 返回上周的结果。如果流 api 已经运行了一个多星期,那么“B”中不能有任何不在“A”中的推文。

我知道在“A”而不是“B”中有一些推文的两个原因:

  1. search API 仅返回上周的结果,而流 api 返回所有内容
  2. search API 只返回部分结果,而不是全部,因为它的重点不在于完整性。

我想确定我是否正确。

4

1 回答 1

1

对于不在“A”中的“B”,您是正确的。一个重要的迹象来自您包含的 Search API 链接:

它允许查询最近或流行推文的索引...

对于不在“B”中的“A”,您也是正确的,但有一些小错误。

  1. Streaming API 不会返回所有内容,它只会返回总推文的 1%。1% 过滤器是在 Twitter 内部完成的,没有任何迹象表明它是如何完成的。不久前有一个关于将 1% 固定为真正的 1% 的公告,但我似乎无法找到我阅读它的链接。
  2. 使用 Streaming API,您还会受到以下影响(更常见的是):
    • 公共流量限制(达到 1%)
    • 失速警告(警告)

根据您的使用情况,很少有人使用https://dev.twitter.com/streaming/overview/messages-types

于 2015-09-21T17:12:41.410 回答