Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用tweepy只返回一条tweet_Python_Twitter_Tweepy - Fatal编程技术网

Python 如何使用tweepy只返回一条tweet

Python 如何使用tweepy只返回一条tweet,python,twitter,tweepy,Python,Twitter,Tweepy,我对tweepy很陌生,现在下面的代码只将结果输出到屏幕上, 但我想做的是:将每个结果传递给变量: 例如: tweet = Twitter().start() print tweet >> justinbieber 所以我的问题是我不知道如何一次返回一个值 现在我有了这个,下面的代码将永远消失,在我按下Ctrl+C后,它将不会将结果存储在tt中: >>> import twitter_streaming_tweepy as t >>> tt =

我对tweepy很陌生,现在下面的代码只将结果输出到屏幕上, 但我想做的是:将每个结果传递给变量:

例如:

tweet = Twitter().start() 
print tweet
>> justinbieber
所以我的问题是我不知道如何一次返回一个值

现在我有了这个,下面的代码将永远消失,在我按下Ctrl+C后,它将不会将结果存储在tt中:

>>> import twitter_streaming_tweepy as t
>>> tt = t.Twitter().start()
alwaysupportjus
Madam_Rauhl
代码如下:

import sys
import tweepy

output = []

class CustomStreamListener(tweepy.StreamListener):

    def on_status(self, status):
        try:
            print status.author.screen_name
            output.append(status.author.screen_name)

        except Exception, e:
            print >> sys.stderr, 'Encountered Exception:', e
            pass

    def on_error(self, status_code):
        print >> sys.stderr, 'Encountered error with status code:', status_code
        return True # Don't kill the stream

    def on_timeout(self):
        print >> sys.stderr, 'Timeout...'
        return True # Don't kill the stream

class Twitter():

    def __init__(self):

        consumer_key="*******"
        consumer_secret="*******"
        access_key = "*******"
        access_secret ="*******"

        self.auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
        self.auth.set_access_token(access_key, access_secret)
        self.api = tweepy.API(self.auth)


    def start(self):
        l = CustomStreamListener()
        stream = tweepy.streaming.Stream(self.auth,l)
        stream.filter(follow=None, track=['justinbieber'])
        return output

if __name__ == "__main__":
    Twitter().start()

在类中创建一个名为“tweet”的变量,并使用on_status事件使用this.tweet=status将接收到的对象发送到该变量

作为一个性能提示,如果你一个接一个地处理状态,这将导致程序从Twitter上延迟,Twitter会切断你的流。确保在另一个线程中以批处理方式处理tweet的列表或队列


玩得开心。

你使用的是
StreamListener
,这就是为什么推特是流式的。查看一下API,看看是否有可以使用的非流工具。