Twython从用户处获取推文



我正在使用Twython来获取推文流。我使用了这个教程,希望我没有使用GPIO。

我的代码如下:

import time
from twython import TwythonStreamer
TERMS='#stackoverflow'
APP_KEY='MY APP KEY'
APP_SECRET='MY APP SECRET'
OAUTH_TOKEN='MY OATH TOKEN'
OAUTH_TOKEN_SECRET='MY OATH TOKEN SECRET'
class BlinkyStreamer(TwythonStreamer):
    def on_success(self, data):
        if 'text' in data:
            print data['text'].encode('utf-8')
try:
        stream = BlinkyStreamer(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
        stream.statuses.filter(track=TERMS)
except KeyboardInterrupt

它输出一个包含#stackoverflow的所有推文流。但如果推文来自某个用户,例如@StackStatus,我想输出它。

我在树莓派上运行这个。

我该怎么做?感谢您的帮助!

编辑:当某个用户发布新推文时,如果有其他或更简单的方法来执行某些脚本,请告诉我,这也会解决我的问题

"follow"参数不能像teknoboy上面所说的那样工作。正确的用法是使用用户的ID,而不是他们的屏幕名称。您可以使用获取用户IDhttp://gettwitterid.com/.

第三个可用参数是位置-您可以根据需要使用其中的1、2或3。它们与"OR"而非"AND"联系在一起。

示例用法:

SearchTerm='abracadara'#如果包含空格,则它们为'OR',即查找包含任意一个单词而非整个字符串的推文
推特='25073877'#这是唐纳德·特朗普,找到他的推特或提到他
Place='"47.405,-177.296,1mi"'#从Lat,Long 1英里以内发送

stream.status.filter(track=SearchTerm,follow=Tweeter,location=Place)

您应该为过滤器提供follow参数,以流式传输特定用户的推文。如果希望只关注一个用户,则可以定义FOLLOW='StackStatus'并将相应的行更改为
stream.statuses.filter(track=TERMS, follow=FOLLOW)
如果您希望查看所有用户的推文,而不考虑关键字,则可以省略track参数:
stream.statuses.filter(follow=FOLLOW)

最新更新