将流式推文存储在列表中以供进一步分析
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)
我正在构建一个数据挖掘应用程序,以使用 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)