🎉新着AI エージェント向け 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

エージェントの自動化 · ブラウザの使用

ブラウザ内で CAPTCHA を解決するエージェントを使用する

CapSolver をブラウザ使用のカスタム アクションとして追加します。 CAPTCHA または検証チャレンジが表示されると、エージェントは必要な詳細を CapSolver に送信し、ソリューションを受信して​​、承認されたブラウザのワークフローを続行できます。 QA、RPA、およびその他のユーザーが承認したブラウザ自動化用に構築されています。

Browser Use. agent runner

agent → browser.navigate("signup")
agent → form.fill(profile)
CAPTCHA detected
tool_call: solve_recaptcha()span: tools.solve_recaptcha · sitekey + page_url
token returned → agent.resume()
final_output: signup complete
CapSolver function

Solving captcha...

概要

CapSolver + Browser Use の統合は何をしますか?

ブラウザーの使用は、AI エージェントが Web サイトをナビゲートして操作するのに役立ちます。 CAPTCHA が表示されると、CapSolver がチャレンジを処理して結果を返し、エージェントがタスクを続行できるようにします。

ブラウザ使用で動作します

自動化されたブラウザーのワークフロー中に表示され、トークンベースの検証を必要とする、広く使用されている検証チャレンジ。

トークンがエージェントに返されました

CapSolver は CAPTCHA の結果を返すため、エージェントはそれを適用して続行できます。

本番環境に対応

各ソルブは、ログ記録と再試行のためのタスク ID (taskId)、ステータス、およびエラーの詳細を返します。

問題

CAPTCHA がブラウザ使用エージェントを停止するのはなぜですか?

ブラウザ使用エージェントはナビゲート、クリック、入力できますが、CAPTCHA と検証チェックにより複数ステップのタスクが中断される可能性があります。これらに対処する方法がなければ、エージェントは停止したり、同じ手順を繰り返したり、人の助けが必要になったりする可能性があります。

ワークフローの中断

CAPTCHA により、ブラウザ タスクの途中でエージェントを停止できます。

手動フォールバック

エージェントがブロックされた場合は、チームの誰かが介入する必要があります。

CAPTCHA 処理なし

ブラウザの使用では、クリックして入力することはできますが、CAPTCHA が表示されるときはまだヘルプが必要です。

新しい IP だけでは十分ではありません

IP を変更すると解決する場合もありますが、ページ上にすでに存在する CAPTCHA は解決されません。

使用例

CapSolver をブラウザ使用エージェントに追加する必要があるのはいつですか?

パブリックデータのワークフロー

CAPTCHA チェックがタスクを中断する場合に、承認された研究とデータ収集をサポートします。

フォームとワークフローのテスト

承認された環境でサインアップ、ログイン、チェックアウト、フォーム フローをテストします。

社内のビジネスワークフロー

社内ツールやビジネス システム全体で承認されたブラウザー タスクをサポートします。

監視対象ブラウザエージェント

CAPTCHA が承認されたブラウザ タスクを中断した場合でも、監視対象 AI エージェントが続行できるようにします。

クイックスタート

CapSolver をカスタム アクションとして登録する

以下の例は現在、CapSolver のパブリック REST API に対して動作します。エージェントが任意の CAPTCHA で呼び出すことができる 1 つのアクションを登録し、それを解決して、トークンをエージェントに返します。エージェントは、チャレンジ フィールドに入力して送信します。

browser_use_agent.py
# pip install browser-use capsolver-agent
# export CAPSOLVER_API_KEY=CAP-XXXXXX
# export OPENAI_API_KEY=sk-XXXXXX

import asyncio
import json
import os
from browser_use import ActionResult, Agent, Browser, ChatOpenAI, Tools
from capsolver_core import Capsolver
from capsolver_core.capsolver import SolveOnPageOptions
from _env import load_example_env  # demo only: reads repo-root .env

load_example_env()

# 1. Adapt Browser Use's live page to capsolver-core's PageDriver (evaluate + url).
class PageDriver:
    def __init__(self, session):
        self.session = session

    async def url(self) -> str:
        return await self.session.get_current_page_url()

    async def evaluate(self, script: str, arg=None):
        cdp = await self.session.get_or_create_cdp_session()
        result = await cdp.cdp_client.send.Runtime.evaluate(
            params={
                "expression": f"({script})({json.dumps(arg)})",
                "returnByValue": True,
                "awaitPromise": True,
            },
            session_id=cdp.session_id,
        )
        return result.get("result", {}).get("value")

# 2. Register one action: detect + solve + autofill on the page the agent controls.
tools = Tools()
capsolver = Capsolver(api_key=os.environ["CAPSOLVER_API_KEY"])

@tools.action(
    description="Solve and autofill every supported captcha (reCaptchaV2 / reCaptchaV3 / "
                "cloudflare) on the current page. Never solve a captcha yourself."
)
async def solve_page_captchas(browser_session) -> ActionResult:
    results = await capsolver.solve_on_page(
        PageDriver(browser_session),
        options=SolveOnPageOptions(autofill=True, throw_on_error=False),
    )
    if not results:
        return ActionResult(extracted_content="No supported captcha on this page.")
    filled = sum(1 for r in results if r.filled)
    if not filled:
        return ActionResult(error="; ".join(r.error or "not filled" for r in results))
    return ActionResult(
        extracted_content=f"Filled {filled}/{len(results)} captcha tokens. Continue the "
                          "workflow now, e.g. click Submit.",
    )

# 3. Hand the action to the agent; the LLM decides when to call it.
model = os.environ.get("OPENAI_MODEL", "gpt-4o")
# OpenAI-compatible gateways (DeepSeek, ...) reject OpenAI's structured-output format.
compat = {} if "openai.com" in os.environ.get("OPENAI_BASE_URL", "openai.com") else {
    "dont_force_structured_output": True,
    "add_schema_to_system_prompt": True,
}

agent = Agent(
    task="Solve the captcha on this page, then click Submit and report the result.",
    llm=ChatOpenAI(model=model, **compat),
    browser=Browser(headless=False),
    tools=tools,
    initial_actions=[{"navigate": {"url": "https://www.google.com/recaptcha/api2/demo"}}],
)

# 4. Run.
asyncio.run(agent.run())

ステップバイステップ

4 つのステップで CAPTCHA 解決を追加する方法

01

キーをインストールして設定する

02

カスタムアクションを登録する

03

ツールをエージェントに渡す

04

実行して回復する

適用範囲

CapSolver はブラウザでの使用に対してどの CAPTCHA タイプをサポートしていますか?

ブラウザの使用は、reCAPTCHA v2、reCAPTCHA v3、それらの Enterprise バリアント、および Cloudflare Turnstile をサポートします。

reCAPTCHA v2

標準、非表示、および Enterprise reCAPTCHA v2 チャレンジ。

reCAPTCHA v3

アクションのサポートを備えたスコアベースの Enterprise reCAPTCHA v3 チャレンジ。

クラウドフレア回転木戸

管理された非インタラクティブな非表示のターンスタイル ウィジェット。

その他の CAPTCHA タイプ

CapSolver API を通じて利用できる追加の CAPTCHA タスク タイプを調べてください。

位置決め

ブラウザの使用 + CapSolver とプロキシのローテーション

プロキシは、ブラウザ使用エージェントが Web サイトにアクセスするのに役立ちます。 CapSolver は、サポートされている CAPTCHA が表示されたときに処理し、エージェントがタスクを続行できるようにします。

能力

プロキシ/IPローテーション

キャップソルバー

目的のページに到達

はい

併用する

画面上の CAPTCHA に応答します

いいえ

一緒に働きます

サポートされている CAPTCHA を解決します

いいえ

はい

CAPTCHAトークンを返します

再試行します。再ブロックされる可能性があります

はい

タスクの詳細を提供します

異なります

タスクID、ステータス、エラー

ブラウザの設定とプロキシを維持します。サポートされている CAPTCHA が表示されたときに処理できるように CapSolver を追加します。

生産

運用環境のブラウザ使用エージェントのベスト プラクティス

エージェントを実行する前に CapSolver を追加する

エージェントがブラウザ タスクを開始する前に CAPTCHA 解決を利用できるようにします。

成功と失敗を処理する

結果が成功した後はエージェントを続行させ、リクエストが失敗した場合は安全に停止させます。

すべての CAPTCHA リクエストをログに記録します

各リクエストのタスク ID、CAPTCHA タイプ、ステータス、エラーを記録します。

リクエストのタイムアウトを設定する

エージェントがスタックしたままにならないように、設定時間が経過したら待機を停止します。

正しい応答フィールドを使用してください

reCAPTCHA と Cloudflare Turnstile は、異なるフィールドで結果を返します。

API キーを安全に保管する

CAPSOLVER_API_KEY を環境変数またはシークレット マネージャーに保持します。

よくある質問

ポリシー

責任ある使用

CapSolver は、承認された QA テスト、RPA ワークフロー、アクセシビリティ ツール、パブリック データ アクセス、およびその他の準拠タスクなど、責任ある自動化を目的として設計されています。ユーザーは、アクセスするサイトの該当するサービス利用規約および規制に確実に準拠して使用する責任があります。 CapSolver は、不正アクセスや悪意のある自動化をサポートまたは容認しません。

関連する統合

エージェント スタック向けの CapSolver 統合をさらに検討する

別の統合を選択して、エージェントまたはブラウザのワークフローに CAPTCHA 解決を追加します。

01

劇作家

CAPTCHA 解決をカスタム ブラウザー オートメーションに追加します。

統合を表示する
02

ラングチェーン

LangChain エージェントの呼び出し可能ツールとして CapSolver を使用します。

統合を表示する
03

OpenAI エージェント SDK

機能ツールとエージェント ワークフローを通じて CAPTCHA 解決を追加します。

統合を表示する
04

MCPサーバー

CapSolver を MCP ツールをサポートする他のクライアントに接続します。

統合を表示する

CAPTCHA 解決をブラウザ使用エージェントに追加する

無料トライアルから始めて、サポートされている CAPTCHA が表示されたときに、承認されたブラウザのワークフローを継続します。