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

使用Twitter API获取特朗普账号推文无法达到3200条上限问题

解决无法获取realdonaldtrump全量推文的问题

首先得明确:这个问题的核心不是你的代码有bug,而是目标账号的特殊状态导致了API访问限制。不过我们可以先优化代码,确保在API允许的范围内拿到最多内容,再解释限制的根源。

一、代码优化建议

你的现有代码没有充分利用API的单次请求上限,也没处理限流和推文截断的问题,调整后可以在规则内最大化获取量:

import tweepy
import json

access_token = "xxx"
access_token_secret = "xxx"
consumer_key = "xxx"
consumer_secret = "xxx"

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
# 添加自动限流等待,避免因请求频繁被API拦截
api = tweepy.API(auth, wait_on_rate_limit=True)

screen_name = "realdonaldtrump"
data = []

# 配置参数:单次请求取满200条(API上限),包含转发,获取完整长推文
for tweets in tweepy.Cursor(api.user_timeline, 
                            screen_name=screen_name,
                            count=200,
                            include_rts=True,
                            tweet_mode="extended").pages():
    for tweet in tweets:
        # 扩展模式下用full_text获取完整推文内容
        print(tweet.full_text)
        data.append(tweet._json)

filename = f"{screen_name}_tweets.json"
with open(filename, "w") as outfile:
    json.dump(data, outfile, indent=4)

优化点说明:

  • wait_on_rate_limit=True:自动处理API限流阈值,不用手动写等待逻辑
  • count=200:拉满单次请求的推文数量(Twitter API的user_timeline接口单次最多返回200条)
  • include_rts=True:包含账号转发的内容(默认不包含,会直接减少返回量)
  • tweet_mode="extended":获取完整的长推文文本,避免被截断成短内容

二、为什么realdonaldtrump只能拿到100-200条推文?

因为realdonaldtrump账号处于永久暂停状态,Twitter对这类受限账号的历史推文做了API访问限制——即使你的API密钥权限完全正常,也只能获取少量最近的推文,这是平台的政策限制,和代码无关。你测试其他正常活跃账号能拿到3200条,也侧面验证了这一点。

如果需要该账号的更多历史推文,只能通过第三方归档服务获取(注意遵守版权和平台规则),官方API无法提供超出限制的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 23:51:50