使用Tweepy提取Twitter粉丝信息遇API不兼容问题解决方法
问题根因
你参考的2021年教程基于Twitter API v1.1、Tweepy 3.x版本编写,当前新注册的Twitter开发者账号默认仅授予Essential权限,仅能访问v2版本接口,所有发往v1.1接口的请求都会被服务端直接拦截返回453错误,不存在本地改参数、换旧版本库就能绕过权限校验的可能,等Elevated权限审核的时间成本极高,完全没必要硬适配旧代码。
零申请快速解决方法
直接用现有Essential权限调用v2接口即可,整体改动不超过10行,拉取效率和原方案基本一致。
- 先升级本地Tweepy到支持v2接口的版本:
pip uninstall -y tweepy pip install tweepy>=4.12
- 替换原有鉴权、粉丝拉取逻辑,和你原来的代码逻辑完全对齐,最终拿到的粉丝ID列表
ids和旧代码输出格式一致:
import tweepy # 替换为你在Twitter开发者平台生成的v2版本Bearer Token BEARER_TOKEN = "你的v2接口Bearer Token" client = tweepy.Client( bearer_token=BEARER_TOKEN, wait_on_rate_limit=True # 自动处理限流,不用手动写等待逻辑 ) # 替换为你要拉取的目标账号用户名 target_screen_name = "目标账号用户名" # v2接口需要先通过用户名获取对应用户ID target_user = client.get_user(username=target_screen_name) target_uid = target_user.data.id ids = [] # 自动分页拉取全量粉丝ID,和原Cursor的分页逻辑完全一致 for page in tweepy.Paginator( client.get_users_followers, id=target_uid, max_results=1000 # Essential权限支持的单页拉取上限 ): if page.data: ids.extend([u.id for u in page.data])
注意事项
- 该方案完全基于v2官方接口,不需要提交任何权限升级申请,拿到密钥就能直接跑
- 开启
wait_on_rate_limit=True后,触发接口限流时会自动等待到限流窗口重置,不需要额外写休眠逻辑,几万粉丝量级的账号拉取耗时和原v1.1方案基本持平 - 不要在尝试让旧版v1.1代码运行上浪费时间:453错误是服务端权限拦截,和本地代码写法、依赖版本没有任何关系,没有Elevated权限的前提下不可能调通旧接口
网上流传的改接口域名、替换请求头、用旧版Tweepy的偏方全部无效,所有请求到v1.1端点的粉丝查询请求都会被权限校验直接打回。
内容的提问来源于stack exchange,提问作者frt132
相关产品推荐
相关产品推荐

