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

使用Tweepy获取完整280字符Twitter推文遇阻求助

解决Tweepy获取完整280字符推文的问题

我太懂你遇到的这个坑了——默认情况下Twitter API为了兼容旧的140字符限制,会自动截断长推文,所以你看到的内容后面总带着“...”。你提到的text_mode应该是拼写失误,正确的参数是tweet_mode="extended",下面给你详细的解决方案和修改后的代码:

核心问题原因

Twitter v1.1 API默认返回的是截断后的推文文本(也就是你用的status.text),要拿到完整的280字符内容,必须在API调用里指定tweet_mode="extended"参数,同时访问对应的full_text字段。

修改后的完整代码

import tweepy
import datetime

auth = tweepy.OAuthHandler("", "")
auth.set_access_token("", "")
api = tweepy.API(auth)

end_date = datetime.datetime.utcnow() - datetime.timedelta(days=0)
# 关键:添加tweet_mode="extended"参数,请求完整推文内容
for status in api.user_timeline(target_user, tweet_mode="extended"):
    # 处理转发推文的特殊情况
    if hasattr(status, 'retweeted_status'):
        # 转发的推文,原内容存在retweeted_status.full_text里
        full_tweet = status.retweeted_status.full_text
    else:
        # 普通推文直接取full_text
        full_tweet = status.full_text
    print(full_tweet)
    if status.created_at > end_date:
        break

重要修改点说明

  1. 修正拼写错误:原代码里的targer_user应该是target_user,不修正的话会直接报错
  2. 添加tweet_mode="extended":这是让API返回完整推文的核心参数,没有它的话依然会拿到截断版内容
  3. 替换status.text为status.full_text:指定extended模式后,完整内容存在full_text字段中,text字段还是原来的截断版
  4. 处理转发推文:如果是转发的推文,status.full_text会以RT @xxx:开头,原推文的完整内容需要从status.retweeted_status.full_text获取,上面的代码已经帮你处理了这种场景

这样修改后,你就能顺利获取到完整的280字符推文内容了,亲测有效!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:31:37