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

使用PyPasser生成reCaptchaV3令牌仍遭遇401未授权认证错误

问题:reCAPTCHA v3令牌生成后仍收到401 Unauthorized错误

尝试用Python的requests库对某网站进行身份验证,该网站采用reCAPTCHA v3实现登录验证。使用pypasser库生成了reCAPTCHA令牌,但发送POST请求时始终返回401 Unauthorized错误。目标网站是https://public.txdpsscheduler.com。

import requests
from pypasser import reCaptchaV3

headers = {
    "Accept": "application/json, text/plain, */*",
    "Accept-Language": "en-US,en;q=0.9",
    "Authorization": "",
    "Connection": "keep-alive",
    "Content-Type": "application/json;charset=UTF-8",
    "DNT": "1",
    "Origin": "https://public.txdpsscheduler.com",
    "Referer": "https://public.txdpsscheduler.com/",
    "Sec-Fetch-Dest": "empty",
    "Sec-Fetch-Mode": "cors",
    "Sec-Fetch-Site": "same-site",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36",
    "sec-ch-ua": '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"',
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": '"macOS"',
}


reCaptcha_response = reCaptchaV3(
    "https://www.google.com/recaptcha/enterprise/anchor?ar=1&k=6LesF7oaAAAAAEvJD0hjmTUib8Q5PGjTo54U2ieP&co=aHR0cHM6Ly9wdWJsaWMudHhkcHNzY2hlZHVsZXIuY29tOjQ0Mw..&hl=en&v=EGbODne6buzpTnWrrBprcfAY&size=invisible&cb=n3itz0yfg7ny"
)

json_data = {
    "UserName": "username",
    "RecaptchaToken": {"Action": "login", "Token": reCaptcha_response},
}

response = requests.post("https://apptapi.txdpsscheduler.com/api/auth", headers=headers, json=json_data, verify=False)

print(response.json())

可能的原因及解决方法

1. reCAPTCHA令牌生成参数错误

你传入reCaptchaV3的是完整锚点URL,但pypasser通常需要直接传入site key和目标页面URL。从锚点URL中提取site key为6LesF7oaAAAAAEvJD0hjmTUib8Q5PGjTo54U2ieP,修改生成逻辑:

reCaptcha_response = reCaptchaV3(site_key="6LesF7oaAAAAAEvJD0hjmTUib8Q5PGjTo54U2ieP", url="https://public.txdpsscheduler.com")

2. 请求缺少会话Cookie

网站可能需要会话Cookie来关联请求上下文,先通过GET请求获取Cookie再发送POST:

# 使用Session保持会话
session = requests.Session()
session.get("https://public.txdpsscheduler.com", headers=headers, verify=False)

# 用session发送登录请求
response = session.post("https://apptapi.txdpsscheduler.com/api/auth", headers=headers, json=json_data, verify=False)

3. 无效的Authorization头

当前Authorization头为空,可能干扰服务器验证逻辑,直接从headers中移除该字段:

headers = {
    # 移除 "Authorization": "",
    "Accept": "application/json, text/plain, */*",
    # 其他字段保持不变
}

4. Action参数不匹配

服务器可能验证reCAPTCHA的Action值是否与页面实际动作一致。打开浏览器开发者工具,查看真实登录请求中RecaptchaToken的Action字段,替换代码中的"login"为实际值。

5. pypasser对reCAPTCHA Enterprise支持不足

目标网站使用的是reCAPTCHA Enterprise版本,pypasser可能无法兼容这类验证。可以改用浏览器自动化工具(如Playwright、Selenium)模拟真实用户操作,直接获取页面生成的有效令牌。

内容的提问来源于stack exchange,提问作者S P Sharan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:44:51