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

使用duolingo-api Python库登录Duolingo失败,报JSONDecodeError错误求助

解决Duolingo API登录JSONDecodeError问题

问题根源

你使用的duolingo-api库最后更新于2017年,Duolingo的认证API已大幅更新,旧库的登录逻辑完全不兼容当前接口,导致请求返回非JSON内容,触发JSON解析错误。

解决方案

放弃使用过时的duolingo-api库,改用手动模拟登录请求的方式,以下是具体实现步骤:

1. 手动实现登录与数据获取

import requests

# 初始化会话,保持登录状态的Cookie
session = requests.Session()

# 第一步:获取登录所需的csrf_token
login_page = session.get("https://www.duolingo.com/login")
csrf_token = session.cookies.get("csrf_token")

# 第二步:发送登录请求
login_payload = {
    "csrf_token": csrf_token,
    "login": "你的Duolingo用户名/邮箱",
    "password": "你的Duolingo密码"
}

login_response = session.post("https://www.duolingo.com/login", data=login_payload)

# 验证登录并获取用户数据
if login_response.status_code == 200:
    print("登录成功")
    # 示例:获取用户基础数据
    user_data = session.get("https://www.duolingo.com/api/1/users/show?username=你的用户名").json()
    print(f"用户总经验值: {user_data['total_xp']}")
else:
    print(f"登录失败,状态码: {login_response.status_code}")

2. 关键注意事项

  • 必须使用requests.Session维持会话Cookie,否则登录状态无法保持
  • Duolingo的API端点可能随版本调整,若上述接口失效,可通过浏览器开发者工具抓取实际请求的端点
  • 控制请求频率,遵守平台使用规范,避免账号被限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:45:08