使用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
重要修改点说明
- 修正拼写错误:原代码里的
targer_user应该是target_user,不修正的话会直接报错 - 添加
tweet_mode="extended":这是让API返回完整推文的核心参数,没有它的话依然会拿到截断版内容 - 替换
status.text为status.full_text:指定extended模式后,完整内容存在full_text字段中,text字段还是原来的截断版 - 处理转发推文:如果是转发的推文,
status.full_text会以RT @xxx:开头,原推文的完整内容需要从status.retweeted_status.full_text获取,上面的代码已经帮你处理了这种场景
这样修改后,你就能顺利获取到完整的280字符推文内容了,亲测有效!
内容的提问来源于stack exchange,提问作者user9410913
相关产品推荐
相关产品推荐

