如何获取包含多个关键字的推文数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取包含多个关键字的推文数据相关的知识,希望对你有一定的参考价值。

我正试图通过使用这些典型代码来累积推文数据。如你所见,我试图追踪包含'UniversalStudios','Disneyland'OR'Los Angeles'的推文。但事实上,我真正希望获得的是包含这些关键字“UniversalStudios”,“Disneyland”和“LosAngeles”的推文。谁能告诉我如何实现这一目标?

非常感谢提前:)

#This is a basic listener that just prints received tweets to stdout.
class StdOutListener(StreamListener):

    def on_data(self, data):
        all_data = json.loads(data)
        tweet = TextBlob(all_data["text"])

        #Add the 'sentiment data to all_data
        #all_data['sentiment'] = tweet.sentiment

        #print(tweet)
        #print(tweet.sentiment)

        # Open json text file to save the tweets
        with open('tweets.json', 'a') as tf:
            # Write a new line
            tf.write('\n')

            # Write the json data directly to the file
            json.dump(all_data, tf)
            # Alternatively: tf.write(json.dumps(all_data))
        return True

    def on_error(self, status):
        print (status)


if __name__ == '__main__':

    #This handles Twitter authetification and the connection to Twitter Streaming API
    l = StdOutListener()
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    stream = Stream(auth, l)

    #This line filter Twitter Streams to capture data by the keywords: 'python', 'javascript', 'ruby'
    stream.filter(languages = ['en'], track=['UniversalStudios','Disneyland', "LosAngeles"])
答案

Twitter's API(参见“track”)提到你需要在短语之间加上空格来表示AND(逗号是OR)。我不确定你使用的库如何处理它,但我的赌注是:

track=['UniversalStudios Disneyland LosAngeles']

来自文档的引用:

通过这个模型,你可以将逗号视为逻辑OR,而空格等同于逻辑AND(例如'twitter'是AND twitter,'the,twitter'是OR twitter)。

以上是关于如何获取包含多个关键字的推文数据的主要内容,如果未能解决你的问题,请参考以下文章

Twitter:如何提取包含符号 (!,%,$) 的推文?

如何使用 API 下载推文文本?

如何获取喜欢我的推文的用户列表和引用转发我的推文的用户列表?

计算每天的推文

如何收听仅包含来自 Twitter 流的地理信息的推文

使用 tweepy 流式传输用户的时间线和过滤的推文