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

使用Instaloader获取Instagram粉丝列表时遇csrftoken获取错误

Instagram Instaloader 登录触发 KeyError: 'csrftoken' 解决方案

问题场景

  • 用Instaloader获取个人Instagram粉丝列表,运行程序时能收到Instagram发送的登录通知邮件,但执行登录代码时触发KeyError
  • 两周前程序运行正常,可正常获取粉丝列表

报错信息

L.login(username, password)  # (login)
File "/opt/homebrew/lib/python3.10/site-packages/instaloader/instaloader.py", line 634, in login
    self.context.login(user, passwd)
File "/opt/homebrew/lib/python3.10/site-packages/instaloader/instaloadercontext.py", line 265, in login
    session.headers.update({'X-CSRFToken': login.cookies['csrftoken']})
File "/opt/homebrew/lib/python3.10/site-packages/requests/cookies.py", line 335, in __getitem__
    return self._find_no_duplicates(name)
File "/opt/homebrew/lib/python3.10/site-packages/requests/cookies.py", line 414, in _find_no_duplicates
    raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
KeyError: "name='csrftoken', domain=None, path=None"

解决步骤

  • 更新Instaloader到最新版本
    Instagram会频繁调整API验证逻辑,旧版本可能因适配失效导致该错误。执行升级命令:
    pip install --upgrade instaloader

  • 使用会话文件登录,跳过重复密码验证
    手动生成会话文件后,后续登录无需输入密码,还能避免验证流程中的Cookie问题:

  1. 终端执行命令生成会话文件:instaloader --login YOUR_USERNAME,按提示输入密码,完成后会在当前目录生成session-YOUR_USERNAME文件
  2. 代码中改用会话文件登录:
import instaloader
L = instaloader.Instaloader()
# 加载会话文件
L.load_session_from_file("YOUR_USERNAME")
# 获取粉丝列表
target_profile = instaloader.Profile.from_username(L.context, "YOUR_USERNAME")
for follower in target_profile.get_followers():
    print(follower.username)
  • 处理两步验证(如果开启)
    若账号开启了两步验证,直接用密码登录会导致验证流程异常,需在登录时传入验证码:
L.login(username, password, two_factor_code="YOUR_2FA_CODE")

使用会话文件登录可自动保存两步验证状态,后续无需重复输入验证码。

  • 清除旧缓存与Cookie
    删除Instaloader的缓存文件(通常位于~/.config/instaloader/目录或当前运行目录下的缓存文件),清除旧Cookie后重新执行登录操作,避免旧数据干扰新的验证流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:10:43