我在使用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
答案 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 。