我使用tweepy来跟踪更改主题标签列表的推文
twitterStream=Stream(OAuthObject,listenerFunction())
twitterStream.filter(track=[u'hashtags separated by comma'])
现在每3个小时,我应该从数据库中获取最新的hashtags,并刷新流线程,我该怎么办?
答案 0 :(得分:4)
当我查看Stream类构造函数并找到(async)参数并将其设置为true时,我解决了这个问题,这是我的代码:
twitterStream=Stream(OAuthObject,listenerFunction())
while True:
if twitterStream.running is True:
twitterStream.disconnect()
keywords=getKeywordsFromDb() # return string of keywords seaprated by comma
if keywords=='':
print 'no keywords to listen to'
else:
twitterStream.filter(track=[keywords],async=True) # Open the stream to work on asynchronously on a different thread
time.sleep(3600) # sleep for one hour
答案 1 :(得分:0)
您可以从False
或其他一些回调方法返回on_status
。这将取消流,然后将控制权返回给您的应用程序。
在on_status
方法中,您可以检查当前时间,如果已经过了三个小时,则返回False
。然后,您可以再次调用filter
,从数据库查询中传递不同的主题标签。