4

我正在构建一个 node.js 应用程序,它打开了与 Twitter 流 API (v1.1) 的连接

我想将多个关键字(主题标签和单词)过滤为单独的查询。我最初的想法是拥有多个公共流。

但是,我知道每个应用程序和每个 IP 地址只能有一个与 Twitter 流 api 的开放连接,并且 Twitter 鼓励我们提出创造性的解决方案来获得我们想要的东西。

所以我的问题是:

如果我在没有过滤器的情况下进行流式传输,例如使用statuses/sample(我相信是 1%)并使用自定义 javascript 过滤输出,如果我使用 API 过滤方法(即 track='twitter ')。

编辑:我创建了一个图表来解释这一点:

在此处输入图像描述

如您所见,我想知道这两个输出是否相同。我怀疑它们不会是,因为虽然两个输出实际上是相同的过滤器,但一个来源是 1% 的样本,而另一个来源可能是 100% 的样本,但只提供 1% 的推文。

那么有人可以澄清一下两个输出是否相同吗?

谢谢你。

4

3 回答 3

2

我想用我的调查结果来回答我的问题。

我在同一时间范围内并排测试了两者,并得出结论,自定义过滤器方法虽然支持多个过滤器,但无法提供足够的推文来创建足够有趣的可视化。

我认为使用并发过滤器获得更有趣的东西的唯一方法是查看其他方法,但我想知道它是否不可能。也许与第三方。

我附上了可视化跟踪“barackobama”的截图。左边是自定义过滤器,右边是状态/过滤器。

在此处输入图像描述

于 2013-01-17T16:15:35.583 回答
2

根据 Twitter 流 api 规则,如果您跟踪的关键字不超过整个全球流量的 1%,您将收到所有数据(一些推文可能由于网络问题等原因丢失,但这并不重要)。这被称为garden-hose(firehose 是一种特殊的过滤器,它可以为您提供所有数据,但它是通过第三方(例如http://datasift.com/ )作为付费服务提供的)

因此,如果一条推文通过公共流过滤,那么它也将成为您自定义过滤器的一部分,除非您的关键字集太宽泛。

通过使用自定义过滤器,您可以跟踪多个搜索关键字,如果您因为关键字集太宽而错过了一些数据,twitter 会发送一个跟踪限制通知,指示您丢失了多少数据。

我对您的建议是使用自定义过滤器并分析您从流中获得的内容以及您从 twitter 获得的相同关键字的结果。当您开始从 twitter 收到曲目限制通知时,是时候将您的关键字集拆分为多个块,并通过在不同机器上运行它们来开始通过不同的流媒体进行流式传输。

过滤器流的详细信息如下(取自官网https://dev.twitter.com/docs/api/1.1/post/statuses/filter

返回匹配一个或多个过滤谓词的公共状态。可以指定多个参数,允许大多数客户端使用单个连接到 Streaming API。GET 和 POST 请求都支持,但参数过多的 GET 请求可能会导致请求因 URL 长度过长而被拒绝。使用 POST 请求来避免长 URL。

默认访问级别最多允许 400 个跟踪关键字、5,000 个关注用户 ID 和 25 个 0.1-360 度位置框。如果您需要提升对 Streaming API 的访问权限,您应该在此处探索我们的 Twitter 数据合作伙伴提供商。

于 2013-01-03T20:49:21.603 回答
1

statuses/filterapi 对所有推文进行操作,而不是那些返回的推文statuses/sample,您可以通过查看他们的推文 id 来判断:示例推文都来自特定的时间窗口。因此,从毫秒分辨率的创建时间,您可以肯定地判断filter返回的推文在sample.

有关从推文 ID 和示例推文的时间窗口获取创建时间的更多详细信息,请参阅这篇文章:http://blog.falcondai.com/2013/06/666-and-how-twitter-samples-tweets-in。 html

于 2013-06-20T17:00:11.997 回答