如何正确使用Python-Twitter库中的GetStreamFilter?

3 投票
2 回答
1656 浏览
提问于 2025-04-18 02:03

我在使用 GetStreamFilter 这个函数时遇到了一些问题,这个函数是来自 Python-Twitter库

我用的是这段代码:

import twitter
import time

consumer_key = 'myConsumerKey'
consumer_secret = 'myConsumerSecret'
access_token = 'myAccessToken'
access_token_secret = 'myAccessTokenSecret'

apiTest = twitter.Api(consumer_key,
                      consumer_secret,
                      access_token,
                      access_token_secret)

#print(apiTest.VerifyCredentials())

while (True):
    stream = apiTest.GetStreamFilter(None, ['someWord'])
    try:
        print(stream.next())
    except:
        print ("No posts")

    time.sleep(3)

我想做的是每三秒获取一次包含“someWord”这个词的新推文,或者每当有新的推文发布时就获取一次。

2 个回答

1

你可以考虑把你的 while True 循环换成一个从数据流中提取内容的循环,这样可能会更好。

for tweet in apiTest.GetStreamFilter(track=['someWord']):
    print tweet
2

你只需要在循环外面创建这个流,并且只创建一次。

stream = apiTest.GetStreamFilter(None, ['someWord'])

while True:
    for tweet in stream:
        print(tweet)

撰写回答