【问题标题】:Twitter Stream API delivers tweets without the key words in textTwitter Stream API 提供没有文本关键字的推文
【发布时间】:2021-09-21 19:39:16
【问题描述】:

我开始通过流 API 提取推文。但是,我注意到有些推文不包含我在文本中定义的关键词,但是,也有一些推文是例如。回复包含此类关键字的推文。

如何确保只考虑文本中包含该词的推文?

非常感谢您的帮助!

#Load packages and define parameters
import tweepy
key_words = ["xx"]

class TwitterStreamer():

    def __init__(self):
        pass

    def stream_tweets(self, twitter_data_title, key_words):
        listener = StreamListener(twitter_data_title)
        auth = tweepy.OAuthHandler(api_key, api_secret_key)
        auth.set_access_token(access_token, access_secret_token)
        stream = tweepy.Stream(auth, listener)
        stream.filter(track=key_words)


class StreamListener(tweepy.StreamListener):

    def __init__(self, twitter_data_title):
        self.fetched_tweets_filename = twitter_data_title

    def on_data(self, data):
        try:
            print(data)
        
            with open(self.fetched_tweets_filename, 'a') as tf:
                tf.write(data)
            return True
        except BaseException as e:
            print("Error on_data %s" % str(e))
        return True
    
    def on_exception(self, exception):
        print('exception', exception)
        stream_tweets(twitter_data_title, key_words)    

    def on_error(self, status):
        print(status)
    
def stream_tweets(twitter_data_title, key_words):
    listener = StreamListener(twitter_data_title)
    auth = tweepy.OAuthHandler(api_key, api_secret_key)
    auth.set_access_token(access_token, access_secret_token)
    stream = tweepy.Stream(auth, listener)
    stream.filter(track=key_words)
    
    
if __name__ == '__main__':
    twitter_streamer = TwitterStreamer()
    twitter_streamer.stream_tweets(twitter_data_title, key_words)

【问题讨论】:

    标签: python python-3.x twitter spyder twitterapi-python


    【解决方案1】:

    来自Twitter documentation

    Tweet 的文本和一些实体字段被视为匹配项。具体来说,会检查 Tweet 的 text 属性、链接和媒体的 expand_url 和 display_url、标签的 text 以及用户提及的 screen_name 是否匹配。

    因此,如果您只想要文本与您提供的关键字匹配的推文,您将必须自己删除那些文本不包含您提供的关键字的推文。

    【讨论】:

      猜你喜欢
      • 2022-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      • 2020-10-25
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多