
Ethan Collins
Pattern Recognition Specialist

reCAPTCHA v3是隐形的——没有复选框,没有图像网格——在后台对用户交互进行评分。当OpenAI代理SDK代理访问受v3保护的API和页面时,它们会收到低分,从而触发阻止或二次挑战。CapSolver通过其AI服务生成高分reCAPTCHA v3令牌(0.7-0.9),通过@function_tool与OpenAI代理SDK集成,使您的代理能够清除不可见的验证而无需任何可见交互。
reCaptchaV3任务类型在3-8秒内生成高分令牌(0.7-0.9)website_url、website_key和page_action参数(如"login"或"submit"的动作名称)@function_tool与CapSolver的异步execute_tool()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的令牌来解决这个问题,这些令牌几乎可以通过所有站点阈值。代理将此令牌与请求一起提交,站点将其视为高置信度的人类交互。
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
export CAPSOLVER_API_KEY="your-capsolver-api-key"
export OPENAI_API_KEY="your-openai-api-key"
您需要确定目标站点的reCAPTCHA v3 page_action。常见操作:login、submit、homepage、register、checkout。通过在页面源代码中搜索grecaptcha.execute(sitekey, {action: '...'})来查找它。
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']}"
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())
reCAPTCHA v3参数位于页面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: '...'} |
submit、login、verify |
| 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生成0.7-0.9分的令牌,几乎可以通过所有站点阈值。大多数站点的阈值设置为0.5-0.7,因此CapSolver的令牌始终能通过验证。
不需要。令牌模式无需任何浏览器。提供站点密钥、URL和动作——即可获得令牌。这使得v3解决在大多数情况下比v2更快更简单。
尝试常见的动作:verify、submit、login、homepage。如果都不行,检查页面源代码中的grecaptcha.execute调用。动作参数始终在客户端JavaScript中可见。
是的。企业版v3可能需要enterprise: true标志和潜在的s令牌。CapSolver处理企业变体——如果标准方法失败,请在参数中添加enterprise: true。