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

使用Tweepy获取用户关注列表无报错但无法打印问题

问题分析与解决

你的代码无报错但输出空列表,大概率是以下几个原因导致:

  • API权限不足:Twitter API v1.1的friends/list端点需要账号拥有读取权限。登录Twitter开发者平台,检查你的项目权限是否开启了读取用户关注列表的权限,同时确认API密钥(consumer_key、consumer_secret等)对应正确的项目。

  • Cursor未获取到数据:可能是请求没有返回结果,你可以在循环内添加调试输出,确认是否真的获取到了关注对象:

    li = []
    for friend in tweepy.Cursor(api.get_friends, screen_name="elonmusk").items():
        print(f"获取到关注对象:{friend.screen_name}")  # 调试语句
        li.append(friend.screen_name)
    print(li)
    

    如果调试语句没输出,说明请求没有拿到数据,需要检查API密钥的有效性,或者确认目标用户的关注列表是否公开(elonmusk的是公开的,所以大概率是权限问题)。

  • Tweepy版本兼容性:如果使用的是Tweepy v4+,api.get_friends本质是调用v1.1的旧端点,部分新创建的开发者账号可能默认只支持v2接口。如果是这种情况,建议切换到Tweepy v2的客户端来实现:

    import tweepy
    from api_keys import *
    
    # 使用v2客户端
    client = tweepy.Client(
        bearer_token=bearer_token,
        consumer_key=consumer_key,
        consumer_secret=consumer_secret,
        access_token=access_token,
        access_token_secret=access_token_secret
    )
    
    li = []
    # 获取用户ID(通过screen_name转换)
    user = client.get_user(username="elonmusk")
    if user.data:
        # 分页获取所有关注对象
        for page in tweepy.Paginator(
            client.get_users_following,
            id=user.data.id,
            max_results=1000,  # 每次请求最大返回数
            user_fields=["username"]
        ):
            if page.data:
                li.extend([user.username for user in page.data])
    
    print(li)
    

    注意:v2接口需要你在开发者平台申请到相应的权限,并且需要提供bearer_token。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:55:47