我是Spark Streaming的初学者。 我正在测试一些功能正常的代码,但我想用它来做其他事情。我想只检索帐户中最受欢迎的两个主题标签。
class StdOutListener(StreamListener):
def on_data(self, data):
print data
return True
def on_error(self, status):
print status
if __name__ == '__main__':
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, l)
stream.filter(track=['python'])
我该怎么做?
非常感谢。
答案 0 :(得分:0)
可能的解决方案如下(完整示例here):
class StdOutListener(StreamListener):
def on_data(self, data):
print(data)
return True
def on_error(self, status):
print(status)
if __name__ == '__main__':
hashtags_dict = {}
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
tweets = api.user_timeline(screen_name='<your_screen_name',count=200)
for tweet in tweets:
hashtags = tweet.entities.get('hashtags')
for hashtag in hashtags:
if hashtag['text'] in hashtags_dict.keys():
hashtags_dict[hashtag['text']] += 1
else:
hashtags_dict[hashtag['text']] = 1
print(sorted(hashtags_dict, key=hashtags_dict.get, reverse=True)[:2])
我添加到您脚本中的新部分从您的帐户中获取了200条推文,并循环每条推文以获取相关的主题标签。 每个hashtag都将作为键添加到dict(hashtags_dict)中,并且作为值我将hashtag的使用次数添加到了多少次。
最后,我在dict中获得了最大值的两个键,这对应于您帐户中最受欢迎的两个主题标签。
您只能同时获得200条推文,这是允许的最大数量。如果您想要获取所有推文,请查看此script
让我知道。