为什么有些推文在搜索 api 而不是在流媒体 api 中,反之亦然

Why some tweets are in search api and not in streaming api and vice versa

我有一个脚本,它使用 twitter streaming api. Later, another script searches the same phrase using twitter search api 将短语(例如 "python")的传入推文存储到数据库 table "A" 中,并将结果存储到 table "B"。我的问题是为什么 "A" 中有一些推文不在 "B" 中,反之亦然。

我能想到在 "B" 而不是 "A" 中发布推文的原因之一:

"A" 仅包含在上周搜索 api returns 结果时开始流式传输 api 后发布的推文。如果流式传输 api 已经 运行 超过一周,那么 "B" 中不能有任何不在 "A".

中的推文

我知道在 "A" 而不是 "B" 中发布一些推文的两个原因:

  1. 仅搜索 API returns 仅搜索上周流式传输时的结果 api returns 一切
  2. 搜索 API returns 仅搜索结果的一部分而不是全部,因为其重点不在于完整性。

我想确定一下我是否理解正确。

对于 "B" 不在 "A" 你是正确的。一个重要的迹象来自搜索 API link 你包括:

It allows queries against the indices of recent or popular Tweets...

对于 "A" 而不是 "B" 你也是正确的,但有一些小错误。

  1. Streaming API 不会 return 一切,它只会 return 1% 的推文总数。 1% 的过滤器是在 Twitter 内部完成的,并且 没有任何迹象表明它是如何完成的。不久前有一个关于修复 1% 以达到真正的 1% 的公告,但我似乎找不到我阅读它的 link。
  2. 使用 Streaming API 时,您还会受到以下因素的影响(更常见):
    • Public流限制(达到1%)
    • 失速警告(警告)

根据您的用途,其他很少https://dev.twitter.com/streaming/overview/messages-types