3

我正在尝试构建一个应用程序来跟踪使用流 twitter API 的特定用户的一些术语。

我根据本教程使用 tweepy 为流 api 制作了一个工作 python 脚本。但是,只有当我按术语或用户 ID 跟踪推文时,它才有效,但现在两者都是。当我尝试同时使用它们进行搜索时,api 会返回来自任何用户的推文。我的代码在这里:

#Acessando a API do twitter com as chaves
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token_key, access_token_secret)

#Chamando o Listener com o tweepy
api = tweepy.API(auth)

#Chama o stream e passa o que buscar no twitter.
sapi = tweepy.streaming.Stream(auth, CustomStreamListener())
list_users = ['11111','22222']   #Some ids
list_terms = ['term1','term2']   #Some terms
sapi.filter(follow=list_users, track=list_terms)

这两个变量(list_users, list_terms)分别是用户 ID 列表和术语列表。

如何按用户和条款过滤推文流?有没有办法用 tweepy 过滤器做到这一点?或者我应该在检索推文后进行验证?

4

1 回答 1

1

Twitter 流 API 使用逻辑评估不同的条件OR,即返回带有条款和来自用户的推文的联合。因此,您必须实现自定义on_data功能才能使用AND.

请注意,您的条件限制为最多5000 个用户和 400 个术语,并且由于速率限制可能是一个问题,因此您需要为 api 提供产生较低推文流的条件,并使用所有其他条件过滤传入数据在后期处理中。

您最多可以跟踪 5,000 个用户和 400 个关键字——速率限制确实在 Firehose 的 1% 处生效,因此,如果任何时候来自您的关键字和用户的联合的推文量上升到发生在所有推文中的 1% 以上在 Firehose 上“实时”,您将获得最多 1% 的推文,以及一个速率限制通知,通知您错过了多少推文。

于 2013-12-20T22:44:36.653 回答