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

Python requests请求replit登录报403 缺少X-Requested-With头问题

Python requests登录Replit 403及reCAPTCHA问题排查方案

1. 初始403报错(提示缺失X-Requested-With头)修复点

  • 传参方式错误:代码里用auth=(email, password)传账号密码是无效的,Replit登录接口不支持HTTP Basic认证方式,账号密码需要放在POST请求体中提交,而不是通过auth参数构造认证头。
  • 缺失强制校验的请求头:除了报错明确提示的X-Requested-With: XMLHttpRequest(用来标识AJAX异步请求),还需要补齐以下和真实浏览器一致的请求头,否则会被WAF直接拦截:
    • User-Agent:替换requests默认的python-requests/版本号标识,用主流桌面浏览器的UA值
    • Referer:值设置为https://replit.com/login,标记请求来源为登录页面
    • Content-Type:和你提交参数的格式匹配,传JSON参数就设为application/json,传表单参数就设为application/x-www-form-urlencoded
  • 必须使用requests.Session()对象发起请求,保持请求过程中的cookie一致,否则即使登录参数正确,后续请求也会因为没有会话凭证被拦截。
  • 不要只传账号密码两个字段,先打开浏览器开发者工具,抓正常登录时的POST请求载荷,把里面的隐藏字段(比如CSRF令牌)一起带上,缺字段也会被拦截。

基础修正后的代码示例:

import requests

# 替换为自己的账号信息
email = "your_account_email"
password = "your_account_password"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
    "X-Requested-With": "XMLHttpRequest",
    "Referer": "https://replit.com/login",
    "Content-Type": "application/json"
}

login_payload = {
    "username": email,
    "password": password
    # 此处补充抓包拿到的其他必填字段,比如csrf token
}

session = requests.Session()
resp = session.post(
    url="https://replit.com/login",
    json=login_payload,
    headers=headers,
    allow_redirects=True
)

2. 后续reCAPTCHA拦截问题说明

补全请求头后遇到的reCAPTCHA人机校验,无法通过简单修改请求参数绕过:

  • reCAPTCHA会综合校验浏览器环境特征、操作轨迹、IP风险等级等多维度信息,纯requests模拟的请求没有真实浏览器渲染环境,特征非常明显,几乎不可能通过校验。
  • 手动破解、绕过reCAPTCHA的操作违反Replit服务条款,不建议尝试。
  • 如果需求是拉取个人账号下的存储文件,优先走官方提供的正规授权接口,不要用模拟网页登录的方式,不会触发人机校验,稳定性也有保障。
  • 如果必须做网页端自动化操作,替换为带真实浏览器内核的自动化工具(比如Playwright),加载完整浏览器环境可以大幅降低被拦截的概率,但也无法保证100%绕过reCAPTCHA校验,IP存在风险记录时依然会弹出验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:51:27