【问题标题】:Tweepy Streamer Limiting Tweets to 140 CharactersTweepy Streamer 将推文限制为 140 个字符
【发布时间】:2021-01-16 08:45:46
【问题描述】:

在第一次总统辩论期间,我创建了一个 tweepy 侦听器来将推文收集到本地 MongoDB,但我意识到我收集的推文被限制为 140 个字符,并且许多被截断到 140 个字符的限制。在我的信息流中,我定义了tweet_mode='extended',我认为它可以解决这个问题,但是,我仍然无法检索超过 140 个字符的完整推文长度。以下是我的代码:

auth.set_access_token(twitter_credentials.ACCESS_TOKEN, twitter_credentials.ACCESS_TOKEN_SECRET)

api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)

# Create a listener MyListener that streams and stores tweets to a local MongoDB

class MyListener(StreamListener):
    
    def __init__(self):
        super().__init__()
        self.list_of_tweets = deque([], maxlen=5)
        
    def on_data(self, data):
        try:
            tweet_text = json.loads(data)
            self.list_of_tweets.append(tweet_text)
            self.print_list_of_tweets()
            db['09292020'].insert_one(tweet_text)
        except:
            None
          
    def on_error(self, status):
        print(status)

    def print_list_of_tweets(self):
        display.clear_output(wait=True)
        for index, tweet_text in enumerate(self.list_of_tweets):
            m='{}. {}\n\n'.format(index, tweet_text)
            print(m)  

debate_stream = Stream(auth, MyListener(), tweet_mode='extended')
debate_stream = debate_stream.filter(track=['insert', 'debate', 'keywords', 'here'])

任何关于如何通过此侦听器获取完整扩展推文的意见将不胜感激!

【问题讨论】:

    标签: twitter streaming tweepy


    【解决方案1】:

    tweet_mode=extended 对传统的标准流 API 没有影响,因为默认情况下,推文以截断 (140) 和扩展 (280) 形式传递。

    因此,您需要像这样设置您的 Stream Listener:

    debate_stream = Stream(auth, MyListener())

    您应该看到的是,较长推文的 JSON 对象有一个包含 140 个字符的 text 字段,但包含一个名为 extended_tweet 的附加字典,该字典又包含一个带有完整推文文本的 full_text 字段。

    【讨论】:

      【解决方案2】:

      您可以尝试将倒数第二行更改为

      debate_stream = Stream(auth, MyListener()).extended_tweet["full_text"]
      

      不确定,这是否可行,但请尝试一下。

      【讨论】:

      • 我在切换到上述代码时收到以下错误:AttributeError: 'Stream' object has no attribute 'extended_tweet'
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-29
      • 2016-05-28
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      相关资源
      最近更新 更多