2010-04-15 157 views
1

我对tweepy api有一些问题。tweepy stream.filter()方法无法正常工作

我只是试着写一个小的应用程序,让我一个用户(或多个)的状态流,但一个就可以了,开始与;-)

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

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

回答

7

我发现它自己

stream.filter()方法需要的阵列

,所以我不得不编码

stream.filter(['1234567']) 

等瞧

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) 

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