我正在尝试构建一个应用来跟踪使用流式Twitter API的特定用户的某些术语。
我使用tweepy为基于此tutorial的流式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过滤器做到这一点?或者我应该在检索推文后进行验证吗?
答案 0 :(得分:1)
Twitter流媒体API使用OR
逻辑评估不同的条件,即返回带有术语和用户的推文联合。因此,您必须实施自定义on_data
功能才能使用AND
进行过滤。
请注意,您最多只能处理5000 users and 400 terms的条件,并且由于速率限制可能存在问题,因此您需要为api提供产生较低推文流的条件,并使用所有条件过滤传入数据后处理中的其余条件。
您最多可以跟踪5,000个用户和400个关键字 - 速率限制确实会在Firehose的1%生效,因此,如果您的关键字和用户联合的推文量在任何时候都超过所有人的1%在Firehose上“实时”发送的推文,您将获得高达1%的推文以及速率限制通知,告知您错过了多少推文。