tweepy stream.filter()方法无法正常工作

时间:2010-04-15 14:44:36

标签: python twitter filter stream tweepy

我在使用tweepy api时遇到了一些问题。

我只是试着写一个小应用程序,让我获得一个用户(更多)的状态流,但一个人可以开始; - )

现在:我的代码是这样的:

    def main():
       config = ConfigParser.ConfigParser()
       config.read('twitter.cfg')

       username = config.get('Twitter', 'username')
       password = config.get('Twitter', 'password') 
           listener = StreamWatcherListener()

       stream = tweepy.Stream(username, password, listener, timeout=None)
       stream.filter('132897940')
在StreamWatcherListener中的

我有一个方法“on_status”打印状态的文本,每当一个新的到达时(一切似乎都有效,当我尝试使用stream.sample()而不是stream.filter())

给定的ID是我的testaccount,所以每当我发推文时,我都应该在控制台中得到一些回复....但没有任何反应。

当我尝试

curl -d @following http://stream.twitter.com/1/statuses/filter.json -uAnyTwitterUser:Password
在终端中,正如我在twitter api中找到的那样,一切运行正常。

所以也许我错误地使用了filter() - 方法?

有什么建议吗?

-andy

2 个答案:

答案 0 :(得分:7)

我自己发现了

stream.filter()方法需要一个数组

所以我不得不编码

stream.filter(['1234567'])

etvoilà

答案 1 :(得分:0)

class TweetListener(StreamListener):
    def on_status(self,status):           
        print "TWEET ARRIVED!!!"
        print "Tweet Text : %s" % status.text
        print "Author's name : %s" % status.author.screen_name
        print "Time of creation : %s" % status.created_at
        print "Source of Tweet : %s" % status.source    
        time.sleep(10)       
        return True

    def on_error(self, status):        
       print status
       if status == 420:
            print "Too soon reconnected, Exiting!!"
            return False
        sys.exit()

def search_tweets():
    twitterStream = Stream(connect().auth, TweetListener())        
    twitterStream.filter(track=['Cricket','Maths','Army','Sports'],languages = ["en"],async=True)

这里我使用了async参数,它在不同的线程上运行每个流。 有关文档或更多详细信息,请参阅此 link