【问题标题】:Tweepy streaming in MongoDB with full_text使用全文在 MongoDB 中进行 Tweepy 流式传输
【发布时间】:2020-01-18 01:40:47
【问题描述】:

我需要帮助来开发 Python 代码,使用库 Tweepy 和 MongoDB。我无法使用全文流式传输推文。我不知道如何实现此代码。

请看这段代码:

keywords = ['trump']

language = ['en']

analyzer = SentimentIntensityAnalyzer()

class StdOutListener(StreamListener):


    def on_status(self, status):
        if hasattr(self, status):
            try:
                tweet = status.retweted_status.extended_tweet["full_text"]
            except:
                tweet = status.retweeted_status.text
        else:
            try:
                tweet = status.extended_tweet["full_text"]
            except AttributeError:
                tweet = status.text



    def on_data(self, data):

        t = json.loads(data)

        tweet_id = t['id_str']  
        username = t['user']['screen_name']  
        followers = t['user']['followers_count']  


        tweet = unidecode(t['text'])
        text = t['full_text']            
        hashtags = t['entities']['hashtags']  
        dt = t['created_at']  
        language = t['lang']  


        blob = analyzer.polarity_scores(tweet)
        sentiment = blob['compound']


        created = datetime.datetime.strptime(dt, '%a %b %d %H:%M:%S +0000 %Y')

        tweet = {'id':tweet_id, 'username':username, 'followers':followers, 'text':text, 'hashtags':hashtags, 'language':language, 'created':created, 'sentiment':sentiment}

        print (username + ':' + ' ' + text)
        return True

    def on_error(self, status_code):
        if status_code == 420:
            print (status)
            return False


if __name__ == '__main__':
    l = StdOutListener()
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)

    stream = Stream(auth, l, tweet_mode="extended")



    tweets = stream.filter(track=keywords, languages=language )

我试图以一种不好的方式来做这件事。例如,我用full_text 替换了文本,但它不起作用。我希望你能帮帮我.. 谢谢你的时间!

【问题讨论】:

    标签: python python-3.x twitter tweepy pymongo-3.x


    【解决方案1】:

    if hasattr(self, status): 将引发TypeError,因为hasattr 需要为属性名称输入字符串。

    您应该参考Tweepy's documentation on extended Tweets,它的an example 与我认为您正在尝试做的非常相似。

    【讨论】:

      猜你喜欢
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 2018-03-17
      相关资源
      最近更新 更多