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

Termux运行Python脚本触发KeyError: 'csrftoken'报错如何解决

报错原因

运行alkrinsta脚本时触发KeyError: 'csrftoken',是因为脚本向目标站点发起请求后,响应的Cookie集合中不存在csrftoken字段,代码直接通过字典键索引取值,找不到对应字段就抛出键错误。
常见触发场景:

  • 目标站点(Instagram)更新了反爬规则,旧版本脚本直接请求登录接口不会返回csrftoken,必须先访问首页、携带合法浏览器标识才能获取对应Cookie
  • Termux环境下网络不通,请求被站点拦截,返回的是403/429/验证码页而非正常页面,响应头自然不会携带csrftoken
  • 脚本本身没有做异常兼容,默认所有请求都能成功拿到csrftoken,没有处理请求失败的分支逻辑
修复步骤
  1. 打开脚本目录下的alkrinsta.py文件,定位到第106行附近的登录逻辑代码。
  2. 替换原有硬取Cookie的逻辑,补全合法请求头,增加字段存在性校验:
    原报错代码:
sess.headers.update({'X-CSRFToken' : r.cookies.get_dict()['csrftoken']})

替换为以下代码:

# 先给会话配置正常的浏览器请求头,避免被反爬规则直接拦截
sess.headers.update({
    'User-Agent': 'Mozilla/5.0 (Linux; Android 12; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
    'Referer': 'https://www.instagram.com/'
})
# 优先请求站点首页获取基础Cookie,不要直接请求登录接口
r = sess.get('https://www.instagram.com/', timeout=10)
cookie_dict = r.cookies.get_dict()
# 校验csrftoken是否存在,不存在直接抛出明确提示而非键错误
if 'csrftoken' not in cookie_dict:
    print("请求被站点拦截,请检查网络连通性,或等待一段时间解除访问限制后重试")
    exit()
sess.headers.update({'X-CSRFToken': cookie_dict['csrftoken']})
  1. 保存修改后重新运行脚本,如果还是提示拿不到csrftoken,先在Termux中执行curl -I https://www.instagram.com 检查返回的状态码,如果不是200,先解决网络连通问题再运行脚本。

注意:你下载的alkrinsta属于Instagram暴力破解类工具,大多是数年前发布的旧项目,目前Instagram登录接口已经新增了多重加密签名、人机校验逻辑,就算修复完csrftoken报错,后续也会出现其他接口兼容问题,基本无法正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 20:18:15