Tweepy-检索最流行的两个标签

时间:2017-01-09 19:13:25

标签: python python-2.7 twitter spark-streaming tweepy

我是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'])

我该怎么做?

非常感谢。

1 个答案:

答案 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

让我知道。