You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Tweepy Streaming API无法获取完整推文内容的求助

解决Tweepy Streaming API无法获取完整推文内容的问题

嘿,我刚好碰到过这个问题!你已经做对了第一步——在初始化Stream的时候加上了tweet_mode='extended',但问题出在你读取推文内容的方式上。

核心问题分析

当你启用tweet_mode='extended'后,Twitter API会返回完整的推文内容,但它不再放在status.text字段里,而是存到了status.full_text中。另外还要注意转发推文的特殊情况:如果是转发的推文,原始推文的完整内容会在status.retweeted_status.full_text里,直接用status.full_text可能只会得到带RT前缀的截断内容。

解决方案

我帮你修改了代码中的关键部分,主要是analyze_status函数和on_status方法:

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)

# 改用status.retweeted属性判断是否为转发,更准确
def analyze_status(status):
    return status.retweeted

class MyStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        if not analyze_status(status):
            # 获取完整推文内容
            if hasattr(status, 'full_text'):
                tweet_content = status.full_text
            else:
                tweet_content = status.text
            
            # 如果需要获取转发的原始推文完整内容,可取消下方注释
            # if status.retweeted:
            #     tweet_content = status.retweeted_status.full_text
            
            with open('fetched_tweets.txt', 'a') as tf:
                tf.write(tweet_content.encode('utf-8') + '\n\n')
            print(tweet_content)

    def on_error(self, status):
        print("Error Code : " + str(status))  # 修复类型错误,将status转为字符串

# 你的这部分配置是正确的,已启用extended模式
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth=api.auth, listener=myStreamListener, tweet_mode='extended')
myStream.filter(track=['#bitcoin'], async=True)

关键改动说明

  1. 判断转发的方式优化:用status.retweeted属性替代文本前缀匹配,这是Twitter API提供的原生属性,比字符串判断更可靠。
  2. 获取完整内容:优先读取status.full_text字段,同时保留对status.text的兼容判断,避免极端场景下的报错。
  3. 转发内容可选处理:如果需要获取转发的原始推文完整内容,可以取消注释代码中的转发判断逻辑,直接读取status.retweeted_status.full_text。
  4. 错误处理修复:on_error方法中把status转为字符串,避免打印时出现类型不匹配的错误。

这样修改后,你就能获取到超过140字符的完整推文内容了!

内容的提问来源于stack exchange,提问作者Varad Bhatnagar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:41:42