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

在Replit中使用scratchclient模块出现KeyError: 'set-cookie'错误求助

问题重现

在Replit的Python环境中使用scratchclient模块,执行初始化会话代码时触发以下错误:

Traceback (most recent call last):
  File "main.py", line 9, in <module>
    session = scratchclient.ScratchSession(username, password)
  File "/home/runner/LumberingJuicyType/venv/lib/python3.8/site-packages/scratchclient/ScratchSession.py", line 31, in __init__
    self.login(password)
  File "/home/runner/LumberingJuicyType/venv/lib/python3.8/site-packages/scratchclient/ScratchSession.py", line 66, in login
    self.session_id = re.search('&quot;(.*)&quot;', request.headers["Set-Cookie"]).group()
  File "/home/runner/LumberingJuicyType/venv/lib/python3.8/site-packages/requests/structures.py", line 52, in __getitem__
    return self._store[key.lower()][1]
KeyError: 'set-cookie'

可能原因

  • Scratch官方登录API更新,旧版scratchclient依赖的Set-Cookie头不再返回
  • Replit网络环境拦截或修改了响应,导致Set-Cookie头丢失
  • 账号密码错误或账号被限制,Scratch未返回会话Cookie

解决方案

  1. 验证账号有效性
    确认Scratch账号密码正确,且账号未被限制登录(可以手动在网页端登录测试)。

  2. 更新scratchclient到最新版本
    旧版本模块可能不兼容当前Scratch API,执行升级命令:

    pip install --upgrade scratchclient
    
  3. 手动修复登录逻辑(如果更新后仍无效)
    打开Replit中scratchclient/ScratchSession.py文件,修改login方法里提取session_id的代码:

    • 先添加调试代码,查看登录请求的响应内容:
      # 在login方法里插入以下代码
      print(request.headers)
      print(request.text)
      
    • 根据响应内容调整会话信息提取方式,比如如果Scratch在响应体JSON中返回会话ID,替换原正则提取逻辑:
      # 替换原session_id提取代码
      response_data = request.json()
      self.session_id = response_data.get("session_id")
      
  4. 检查Replit网络连通性
    用requests直接测试Scratch登录接口,确认响应是否正常:

    import requests
    
    username = "你的Scratch账号"
    password = "你的Scratch密码"
    resp = requests.post("https://scratch.mit.edu/login/", data={"username": username, "password": password})
    print("响应头:", resp.headers)
    print("响应内容:", resp.text)
    

    如果没有Set-Cookie头,说明请求未正确触发Scratch的会话生成,需检查请求参数是否符合当前API要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:45:38