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

使用Python requests登录CoinGecko提示账号密码错误如何解决

CoinGecko requests登录报错解决方案

核心错误原因

你提交登录数据的格式不匹配接口要求:CoinGecko登录接口接收的是*表单格式(application/x-www-form-urlencoded)*参数,你使用json=data提交会自动将请求头的Content-Type设置为application/json,后端无法正常解析提交的账号密码字段,因此返回验证失败的结果。
同时你手动提取、传递_session_id的操作属于冗余逻辑,requests的Session实例会自动管理全流程的Cookie,不需要手动处理,多余操作反而可能导致Cookie校验失败。

修复步骤

  • 将post请求的json=data参数修改为data=data,指定以表单格式提交参数
  • 移除所有手动提取、传入_session_id的冗余代码
  • 补充浏览器常规User-Agent请求头,绕过基础反爬识别
  • 可选补充user[remember_me]参数,和前端实际提交的参数结构保持一致

修正后代码示例

import requests

s = requests.session()
# 补充User-Agent,模拟普通浏览器请求
s.headers.update({
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
})

# 获取csrf token
r = s.get("https://www.coingecko.com/accounts/csrf_meta.json")
token = r.json()["token"]

data = {
    "utf8": "✓",
    "authenticity_token": token,
    "user[email]": "你的实际邮箱",
    "user[password]": "你的实际密码",
    "user[remember_me]": "0" # 不需要记住登录就传0,需要就传1
}

# 用data参数提交表单,不要用json
r2 = s.post("https://www.coingecko.com/account/sign_in?locale=tr", data=data)
print(r2.text)
print(s.cookies.get_dict())

额外排查点

如果修改后仍验证失败,可以先通过浏览器抓包查看登录时实际提交的form表单参数,确认是否有遗漏的必填字段;如果账号开启了两步验证,还需要额外补充两步验证的相关参数。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:06:05