🎉全新面向 AI Agent 的 CapSolver
Selenium CAPTCHA solver landing page hero section with code snippet and CTA buttons
Selenium CAPTCHA solver landing page hero section with code snippet and CTA buttons

代理自动化·剧作家

将验证码解决添加到 Playwright Agents

为基于 Playwright 的 AI 代理提供一种处理受支持的验证码的方法。 CapSolver Agent Tools 可以检测挑战,并在启用求解时返回并自动填充结果,以便授权的 Python 工作流程可以继续。

Playwright · Python

page.goto(target_url)
detect_captchas()
CAPTCHA detectedsupported challenge found on the page
solve_on_page(autofill=True)opt-in solving request · authorized workflow
result returned + autofilled
script continues
CapSolver Agent Tools

Solving enabled

它是如何运作的

Playwright 如何解决验证码问题

使用 CapSolver Agent Tools 检测支持的验证码,启用后解决它们,并自动填充结果,以便您授权的 Playwright 工作流程可以继续。

01

检测

验证码 iframe 或小部件出现

02

解决

创建任务 → 获取任务结果

03

注入

页面.评估(令牌)

04

继续

提交表格,继续

何时使用

基于 Playwright 的 AI 代理使用 CapSolver 的地方

质量保证测试自动化

在授权的登台和生产测试中处理验证码,以减少测试运行中断。

RPA 工作流程

当验证码出现时,保持数据输入、订单处理、报告和其他浏览器工作流程运行。

数据提取

从具有机器人保护的站点进行网络抓取和数据收集 - 通过 reCAPTCHA 或 Cloudflare Turnstile 控制的公共数据。

自定义浏览器代理

使用 Playwright 构建自定义 AI 浏览器代理,可以解决验证码并继续执行任务。

快速入门

将验证码解决添加到 Playwright

选择自动处理以加快设置速度,或者在需要对验证码结果进行更多控制时使用令牌模式。

playwright_sdk.py
# pip install capsolver-core playwright
# playwright install chromium
# export CAPSOLVER_API_KEY=CAP-XXXXXX
import asyncio
import os

from playwright.async_api import async_playwright

from capsolver_core import Capsolver, from_playwright_page

from _env import load_example_env  # demo only: reads repo-root .env

load_example_env()

async def main():
    async with async_playwright() as pw:
        browser = await pw.chromium.launch(headless=False)
        page = await browser.new_page()
        await page.goto("https://www.google.com/recaptcha/api2/demo")

        cap = Capsolver(api_key=os.environ["CAPSOLVER_API_KEY"])
        driver = from_playwright_page(page)         # wrap the live Playwright page
        results = await cap.solve_on_page(driver)   # detect -> solve -> autofill
        for r in results:
            status = "solved" if r.solution else "failed"
            print(r.info.type.value, status, "filled:", r.filled)

        await page.click('#recaptcha-demo-submit')
        await page.wait_for_selector(".recaptcha-success")
        print("Verification successful!")
        await browser.close()

asyncio.run(main())

代币注入

不同的验证码,不同的注入字段。

每个 CAPTCHA 类型都将令牌存储在不同的 DOM 元素中。以下是最常见类型的注入方法。

# pip install capsolver-core playwright
# playwright install chromium
# export CAPSOLVER_API_KEY=CAP-XXXXXX
#
# reCAPTCHA v2 token injection -> #g-recaptcha-response
# handler.fill() writes the token and fires the widget callback for you.
import asyncio
import os

from playwright.async_api import async_playwright

from capsolver_core import Capsolver, CaptchaInfo, CaptchaType, from_playwright_page

from _env import load_example_env  # demo only: reads repo-root .env

load_example_env()

URL = "https://www.google.com/recaptcha/api2/demo"
SITE_KEY = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"

async def main():
    async with async_playwright() as pw:
        browser = await pw.chromium.launch(headless=False)
        page = await browser.new_page()
        await page.goto(URL)

        cap = Capsolver(api_key=os.environ["CAPSOLVER_API_KEY"])
        driver = from_playwright_page(page)

        info = CaptchaInfo(
            type=CaptchaType.RECAPTCHA_V2, website_url=URL, website_key=SITE_KEY
        )
        solution = await cap.solve(info)
        filled = await cap.get_handler(info.type).fill(driver, solution, info)

        print(f"filled={filled} token={solution.token[:40]}...")
        await browser.close()

asyncio.run(main())

验证码覆盖率

可供剧作家代理使用的验证码类型

将 CapSolver 与 Playwright 结合使用来处理常见的 reCAPTCHA 和 Cloudflare Turnstile 挑战。

验证码类型

任务类型

注射选择器

状态

验证码 v2

ReCaptchaV2TaskProxyLess

#g-recaptcha-响应

支持

验证码 v3

ReCaptchaV3TaskProxyLess

随请求提交

支持

reCAPTCHA 企业版

ReCaptchaV2EnterpriseTaskProxyLess

#g-recaptcha-响应

支持

Cloudflare 十字转门

AntiTurnstileTaskProxyLess

[name="cf-turnstile-response"]

支持

生产最佳实践

在生产中可靠处理验证码的技巧。

解决前检查

01

仅当验证码实际存在时才调用 CapSolver。首先检查 iframe 或 widget 是否存在。

设置超时时间

02

设置合理的超时(30-60 秒),如果 getTaskResult 花费太长时间,则通过退避重试。

清楚地处理结果

03

正确应用返回的结果并定义求解未完成时工作流程应执行的操作。

尊重率限制

04

运行并行浏览器上下文时,限制 CapSolver 调用以保持在计划的限制范围内。

记录验证码遭遇

05

记录每次解决尝试的任务 ID、验证码类型、结果状态和错误。

保护您的 API 密钥

06

将您的 CapSolver API 密钥存储在环境变量或秘密管理器中。

负责任的使用

使用 CapSolver 实现负责任的自动化

CapSolver 专为授权自动化用例而设计:QA 测试、您有权访问的系统上的 RPA、公共数据收集和合规自动化任务。我们不支持或纵容未经授权的访问、撞库、垃圾邮件或任何违反服务条款或适用法律的活动。

许多合法的自动化工作流程被错误地标记为机器人。当您有充分的理由进行自动化时,CapSolver 可帮助您从误报的验证码挑战中恢复过来。

常见问题解答

相关集成

探索更多适用于您的代理堆栈的 CapSolver 集成

选择另一个集成将验证码解决添加到您的代理或浏览器工作流程中。

01

MCP服务器

将 CapSolver 连接到支持 MCP 工具的其他客户端。

查看集成
02

浏览器使用

添加 CapSolver 作为基于浏览器的 AI 代理的操作。

查看集成
03

浪链

使用CapSolver作为LangChain代理中的可调用工具。

查看集成
04

OpenAI 代理 SDK

通过功能工具和代理工作流程添加验证码解决。

查看集成

将验证码解决添加到您的 Playwright 代理中

获取您的 API 密钥,遵循 Python 集成指南,并将 CapSolver 添加到您的 Playwright 工作流程中。