将流式推文存储在列表中以供进一步分析

Storing streamed tweets in a list for further analysis

我正在构建一个数据挖掘应用程序,以使用 Twitter 流 API(通过 tweepy)和 运行 一套 NLP 算法来收集推文。到目前为止,我所能做的就是将推文写入外部文件。由于我要收集的推文数量是一次 100 条(非常小)和部署问题,我希望将这些推文收集到字典或列表中以供进一步分析。但是,我没有这样做。我到目前为止的代码如下:

import tweepy

class MyStreamListener(tweepy.StreamListener):
    def __init__(self, api=None):
        super(MyStreamListener, self).__init__()
        self.num_tweets = 0
        self.tweets = []

    def on_status(self, status):
        #print(status.text)
        self.num_tweets += 1
        self.tweets.append(status.text)
        if self.num_tweets > 100:
            return False

def getstreams(keyword):
    CONSUMER_KEY    = ''
    CONSUMER_SECRET = ''
    ACCESS_TOKEN  = ''
    ACCESS_SECRET = ''
    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
    api = tweepy.API(auth, wait_on_rate_limit=True)
    myStreamListener = MyStreamListener()
    myStream = tweepy.Stream(auth = api.auth,listener=myStreamListener)
    tweet_list = myStream.filter(track=[keyword])
    return tweet_list.tweets

getstreams('Starbucks')

但是当我 运行 这个时,我得到的是:

AttributeError: 'NoneType' object has no attribute 'tweets'

指向行:

return tweet_list.tweets

如果有人能回答如何克服这个问题并阐明如何将 n 条推文收集到列表中,我将不胜感激。

您可以在 class 中使用 on_data 功能。

def on_data(self, data):
    # Converting data , which is an object, into JSON
    tweet = json.loads(data)

    # my_tweet is our list declared globally
    my_tweet.append(tweet)