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

使用Python Tweepy获取指定用户10条推文时的异常问题求助

分析Tweepy获取推文时的异常问题

嘿,我来帮你拆解下遇到的这几个问题,这些情况在使用Twitter API时挺常见的,咱们一个个说:

1. 用自己用户名时返回所有推文而非指定的10条

这大概率是你调用API方法时没设置数量限制参数,或者用了默认返回全量的逻辑。比如在Tweepy的v1.1版本里,user_timeline方法默认最多返回200条推文(还能通过分页获取更多),如果没显式传count=10,它就会返回能拿到的所有你的推文。另外如果你的代码里写了循环分页获取的逻辑,那自然会拉取所有内容。

2. 用其他存在的用户名时出现404错误(code:34)

这个错误码对应的是“资源不存在”,常见原因有这几个:

  • 用户名拼写错误:哪怕多一个空格、大小写不对(虽然Twitter用户名不区分大小写,但输入时的特殊字符可能出错),都会导致找不到用户;
  • 目标用户是私有账号:如果你的API认证方式是OAuth 2.0的Bearer Token,它只能访问公开推文,私有账号会直接返回404;
  • API权限不足:如果是v1.1 API,你的开发者账号可能没有申请到读取用户推文的权限;如果是v2 API,没添加read:tweets这类必要的权限;
  • 用户已改名/注销:你以为存在的用户名可能已经被用户修改或者账号被注销了。

3. 偶尔用其他用户名却返回自己的推文

这绝对是参数传递错误导致的!比如调用user_timeline时忘记传screen_name或user_id参数,API就会默认返回当前授权账号(也就是你自己)的推文。或者参数名写错了(比如把screen_name写成username),同样会触发默认行为。

给你几个解决方案

确保调用正确的API方法和参数

如果用的是Tweepy v1.1,正确获取指定用户10条推文的代码应该是这样:

import tweepy

# 完成OAuth认证
auth = tweepy.OAuthHandler("你的consumer_key", "你的consumer_secret")
auth.set_access_token("你的access_token", "你的access_token_secret")

api = tweepy.API(auth)

# 指定用户名和获取数量,tweet_mode="extended"能拿到完整推文内容
target_tweets = api.user_timeline(screen_name="目标用户名", count=10, tweet_mode="extended")

for tweet in target_tweets:
    print(tweet.full_text)

如果是用Twitter API v2(现在更推荐的版本),代码要换成这样:

import tweepy

# 用Bearer Token初始化客户端
client = tweepy.Client(bearer_token="你的bearer_token")

# 先通过用户名获取用户ID(v2 API需要用ID来定位用户)
user_info = client.get_user(username="目标用户名")
if user_info.data:
    user_id = user_info.data.id
    # 获取10条推文,max_results控制数量
    tweets = client.get_users_tweets(user_id, max_results=10)
    if tweets.data:
        for tweet in tweets.data:
            print(tweet.text)

排查权限和认证问题

  • 如果要访问私有账号的推文,必须用OAuth 1.0a认证(需要用户授权你的应用),而不是Bearer Token;
  • 去Twitter开发者后台检查你的项目权限,确保添加了读取推文的相关权限;
  • 确认用户名绝对正确,可以去Twitter官网搜索该用户,复制准确的用户名(不要带@符号)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:38:34