使用Tweepy爬取BTC相关推文报TweepError 403权限错误如何解决
403报错排查与解决方案
报错Twitter error response: status code = 403的本质是Twitter API拒绝了你的访问请求,按照以下步骤排查解决:
1. 开发者账号权限校验
- 当前代码调用的是Twitter v1.1版本的搜索接口,2023年Twitter调整API权限规则后,免费开发者账号已经无法调用该接口,只有付费的基础版及以上套餐、或学术研究权限账号可以使用v1.1的全量搜索功能
- 你需要提取2019年的历史推文,本身就不属于免费权限覆盖范围:免费账号仅能调用v2版本接口查询最近7天的推文,无法获取更早的历史数据
- 先登录Twitter开发者门户,确认你创建的应用权限状态正常,没有被封禁、限制
2. 密钥与初始化逻辑校验
- 确认你填入的四个密钥
consumer_key、consumer_secret、access_key、access_secret没有拼写错误、前后无多余空格或换行 - 在初始化api后增加一行测试代码验证密钥有效性:
print(api.verify_credentials())
如果该代码运行报错,说明密钥本身配置错误,和权限无关
- 如果你申请的是仅适配v2 API的密钥,当前的v1.1调用逻辑本身就无法生效,需要改用
tweepy.Client类初始化连接
3. 适配权限的调整方案
方案一:付费/申请高权限
直接在开发者平台购买对应等级的API套餐,或申请学术研究权限,即可直接使用现有代码查询历史推文。
方案二:免费权限适配(仅可查最近7天推文)
将代码调整为适配v2接口的逻辑,核心修改点如下:
- 初始化时用bearer token创建Client实例
- 用
search_recent_tweets方法替代旧的api.search - 按照v2接口的返回结构调整字段提取逻辑
- 仅统计推文数量的话可以直接请求计数接口,无需拉取全量推文内容
内容的提问来源于stack exchange,提问作者Bruno Losse
相关产品推荐
相关产品推荐

