CAPSOLVER
博客
如何在 OpenAI Agents SDK 中解决 reCAPTCHA v3

如何在 OpenAI Agents SDK 中解决 reCAPTCHA v3

Logo of CapSolver

Ethan Collins

Pattern Recognition Specialist

30-Jul-2026

如何在OpenAI代理SDK中解决reCAPTCHA v3

reCAPTCHA v3是隐形的——没有复选框,没有图像网格——在后台对用户交互进行评分。当OpenAI代理SDK代理访问受v3保护的API和页面时,它们会收到低分,从而触发阻止或二次挑战。CapSolver通过其AI服务生成高分reCAPTCHA v3令牌(0.7-0.9),通过@function_tool与OpenAI代理SDK集成,使您的代理能够清除不可见的验证而无需任何可见交互。

TL;DR

  • reCAPTCHA v3是隐形且基于评分的——当分数过低时代理会无声失败
  • CapSolver通过reCaptchaV3任务类型在3-8秒内生成高分令牌(0.7-0.9)
  • 需要website_urlwebsite_keypage_action参数(如"login"或"submit"的动作名称)
  • 集成使用OpenAI代理SDK的@function_tool与CapSolver的异步execute_tool()
  • 无需浏览器——令牌模式适用于所有reCAPTCHA v3实现

为什么reCAPTCHA v3与v2不同

reCAPTCHA v3从不显示可见的挑战。相反,它在后台运行JavaScript,将用户的会话评分从0.0(可能为机器人)到1.0(可能为人)。站点所有者设置一个阈值——通常为0.5-0.7——并阻止或挑战低于该分数的请求。

对于OpenAI代理,这会创建一个无声的失败模式。代理看不到需要解决的CAPTCHA小部件。相反,API调用返回403错误,表单提交无声失败,或站点重定向到错误页面。在不了解reCAPTCHA v3正在阻止它们的情况下,代理无法恢复。

Google的reCAPTCHA v3文档解释说,评分基于“与您的网站的交互”——没有鼠标移动、没有滚动行为和快速导航的自动化浏览器通常评分低于0.3,触发阻止。

CapSolver通过生成0.7-0.9的令牌来解决这个问题,这些令牌几乎可以通过所有站点阈值。代理将此令牌与请求一起提交,站点将其视为高置信度的人类交互。

开始前需要准备什么

bash 复制代码
pip install git+https://github.com/capsolver-ai/capsolver-core.git
pip install git+https://github.com/capsolver-ai/capsolver-agent.git
pip install openai-agents
bash 复制代码
export CAPSOLVER_API_KEY="your-capsolver-api-key"
export OPENAI_API_KEY="your-openai-api-key"

您需要确定目标站点的reCAPTCHA v3 page_action。常见操作:loginsubmithomepageregistercheckout。通过在页面源代码中搜索grecaptcha.execute(sitekey, {action: '...'})来查找它。

第1步 —— 将reCAPTCHA v3解决注册为函数工具

python 复制代码
from agents import Agent, Runner, function_tool
from capsolver_agent.schema import execute_tool

@function_tool
async def solve_recaptcha_v3(
    website_url: str,
    website_key: str,
    page_action: str = "verify",
    min_score: float = 0.7
) -> str:
    """解决不可见的reCAPTCHA v3挑战并返回高分令牌。
    
    在站点使用reCAPTCHA v3(不可见、基于评分)时使用。
    令牌必须作为"g-recaptcha-response"与您的请求一起提交。
    
    参数:
        website_url: 页面的完整URL
        website_key: reCAPTCHA v3网站密钥
        page_action: 动作名称(例如"login"、"submit"、"verify")
        min_score: 最低可接受分数(默认0.7,范围0.1-0.9)
    """
    result = await execute_tool("solve_captcha", {
        "captcha_type": "reCaptchaV3",
        "website_url": website_url,
        "website_key": website_key,
        "page_action": page_action,
        "min_score": min_score
    }, api_key="YOUR_CAPSOLVER_API_KEY")
    
    if result["success"]:
        return f"reCAPTCHA v3已解决(分数≥{min_score})。令牌: {result['solution']['token']}"
    return f"失败: {result['error']}"

第2步 —— 构建代理

python 复制代码
v3_agent = Agent(
    name="API访问代理",
    instructions="""您访问受reCAPTCHA v3(不可见、基于评分)保护的API和页面。
    
    页面使用v3的标志:
    - 脚本标签: <script src="...recaptcha/api.js?render=SITE_KEY">
    - 页面上没有可见的CAPTCHA小部件
    - API返回403或无声失败
    
    当您需要v3令牌时:
    1. 从脚本的render参数中识别站点密钥
    2. 从grecaptcha.execute调用中识别page_action
    3. 使用这些参数调用solve_recaptcha_v3
    4. 将令牌作为g-recaptcha-response与您的请求一起提交""",
    tools=[solve_recaptcha_v3]
)

async def main():
    result = await Runner.run(
        v3_agent,
        "访问https://example.com/api/data的API。它使用站点密钥6LdKlZEpAAAAAN...和动作'getData'的reCAPTCHA v3。给我一个有效的令牌。"
    )
    print(result.final_output)

import asyncio
asyncio.run(main())

第3步 —— 识别reCAPTCHA v3参数

reCAPTCHA v3参数位于页面JavaScript中:

javascript 复制代码
// 脚本src中的站点密钥
<script src="https://www.google.com/recaptcha/api.js?render=6LdKlZEpAAAAAN..."></script>

// execute调用中的动作
grecaptcha.execute('6LdKlZEpAAAAAN...', {action: 'submit'}).then(function(token) {
    document.getElementById('g-recaptcha-response').value = token;
});

reCAPTCHA v3识别指南解释了如何提取这些值。CapSolver扩展可在任何页面上自动检测v3参数。

参数 在哪里找到 示例
website_key 脚本src中的?render= 6LdKlZEpAAAAAN...
page_action execute调用中的{action: '...'} submitloginverify
min_score 站点的阈值(通常为0.5-0.7) 0.7(安全默认值)

领取您的优惠码:在CapSolver仪表板使用代码WEBS,每次充值可额外获得5%的奖励。

结论

在OpenAI代理SDK中解决reCAPTCHA v3需要识别站点密钥和页面动作,然后通过@function_tool调用CapSolver的reCaptchaV3任务类型。与v2不同,没有可见的小部件——代理必须识别无声失败并主动生成高分令牌。CapSolver在3-8秒内生成0.7-0.9分的令牌,无需任何浏览器交互即可清除不可见的验证。

常见问题

CapSolver为reCAPTCHA v3生成什么分数?

CapSolver生成0.7-0.9分的令牌,几乎可以通过所有站点阈值。大多数站点的阈值设置为0.5-0.7,因此CapSolver的令牌始终能通过验证。

我需要浏览器来解决reCAPTCHA v3吗?

不需要。令牌模式无需任何浏览器。提供站点密钥、URL和动作——即可获得令牌。这使得v3解决在大多数情况下比v2更快更简单。

如果我不知道page_action怎么办?

尝试常见的动作:verifysubmitloginhomepage。如果都不行,检查页面源代码中的grecaptcha.execute调用。动作参数始终在客户端JavaScript中可见。

reCAPTCHA v3企业版有什么不同吗?

是的。企业版v3可能需要enterprise: true标志和潜在的s令牌。CapSolver处理企业变体——如果标准方法失败,请在参数中添加enterprise: true

合规声明: 本博客提供的信息仅供参考。CapSolver 致力于遵守所有适用的法律和法规。严禁以非法、欺诈或滥用活动使用 CapSolver 网络,任何此类行为将受到调查。我们的验证码解决方案在确保 100% 合规的同时,帮助解决公共数据爬取过程中的验证码难题。我们鼓励负责任地使用我们的服务。如需更多信息,请访问我们的服务条款和隐私政策。

更多