
Sora Fujimoto
AI Solutions Architect

Cloudflare Turnstileは、現代のWebアプリケーションで伝統的なCAPTCHAを急速に置き換えています。CrewAIのマルチエージェントワークフローがWebリサーチ、データ収集、自動ワークフロー中にTurnstile保護ページに遭遇した場合、すべてのクルーが停止します。CapSolverのcapsolver-core SDKは、2〜5秒でTurnstileチャレンジを解決し、CrewAIのツールシステムとシームレスに統合されて、マルチエージェントパイプラインを中断することなく動作させます。
cloudflareタスクタイプを使用して、2〜5秒でTurnstileを解決し、reCAPTCHAより速いです@toolデコレータを使用しますwebsite_urlとwebsite_key(0xで始まるTurnstileサイトキー)のみが必要ですCloudflare Turnstileは、Webの増加する割合のデフォルトの認証システムとなっています。reCAPTCHAとは異なり、Turnstileは「非インタラクティブチャレンジ」として動作し、リスクスコアが上昇したときにのみ可視ウィジェットを表示します。これは、従来のチェックボックスCAPTCHAよりもエージェントが検出および処理するのが難しいためです。
CrewAIエージェントは、SaaSプラットフォーム、APIドキュメンテーションサイト、現代のECサイト(特にShopify)、フィンテックポータル、コンテンツ管理システムでTurnstileに遭遇します。CloudflareのTurnstileドキュメントによると、このシステムは月に何十億ものチャレンジを処理し、数百万のサイトで使用されており、年間40%以上成長しています。
CrewAIクルーがWebリサーチやデータ収集を行う場合、Turnstileは予告なしに現れます。昨日は正常に読み込まれたページが、今日Cloudflareのボット管理を有効にした場合にTurnstileをデプロイする可能性があります。CapSolverのcloudflareタスクタイプはこれを透過的に処理します。
# CapSolverコアエンジン
pip install git+https://github.com/capsolver-ai/capsolver-core.git
# CapSolverエージェントツール
pip install git+https://github.com/capsolver-ai/capsolver-agent.git
# CrewAI
pip install crewai crewai-tools
export CAPSOLVER_API_KEY="your-capsolver-api-key"
export OPENAI_API_KEY="your-openai-api-key"
import asyncio
from crewai.tools import tool
from capsolver_agent.schema import create_executor
executor = create_executor(api_key="YOUR_CAPSOLVER_API_KEY")
@tool("Cloudflare Turnstileを解決")
def solve_turnstile(website_url: str, website_key: str) -> str:
"""Cloudflare Turnstileチャレンジを解決し、検証トークンを返します。
ウェブサイトがCloudflare Turnstileで保護されている場合にこのツールを使用します。
website_keyは`0x`で始まり、ページのcf-turnstile div要素のdata-sitekey属性から見つかります。
引数:
website_url: Turnstile保護ページの完全なURL
website_key: Turnstileサイトキー(0xで始まる)
戻り値:
要求に送信するcf-turnstile-responseトークン
"""
result = asyncio.run(executor.execute("solve_captcha", {
"captcha_type": "cloudflare",
"website_url": website_url,
"website_key": website_key
}))
if result["success"]:
return f"Turnstileは約3秒で解決しました。トークン: {result['solution']['token']}"
return f"解決失敗: {result['error']}"
from crewai import Agent, Task, Crew, Process
# Turnstile解決機能を持つエージェント
researcher = Agent(
role="Web Research Specialist",
goal="Cloudflare保護サイトにアクセスし、データを収集する",
backstory="""Cloudflare Turnstileで保護されたウェブサイトをリサーチします。
cf-turnstile要素やCloudflareチャレンジページでTurnstileチャレンジに遭遇した場合、
ページURLとサイトキー(0xで始まる)を用いてsolve_turnstileツールを使用します。
返されたトークンをcf-turnstile-responseとして送信します。""",
tools=[solve_turnstile],
verbose=True
)
# Turnstile解決を必要とするタスク
research_task = Task(
description="""{url}のCloudflare保護ページにアクセスしてください。
Turnstileサイトキーは{site_key}です。
Turnstileチャレンジを解決し、トークンを報告してください。""",
expected_output="保護されたリソースにアクセスするためのTurnstileトークン",
agent=researcher
)
crew = Crew(agents=[researcher], tasks=[research_task], process=Process.sequential)
result = crew.kickoff(inputs={"url": "https://example.com", "site_key": "0x4AAAAAAA..."})
TurnstileサイトキーはページHTMLに記載されています:
<!-- Turnstileウィジェット -->
<div class="cf-turnstile" data-sitekey="0x4AAAAAAABkMYinukE8nzYS"></div>
<!-- またはJavaScript -->
<script>
turnstile.render('#container', { sitekey: '0x4AAAAAAABkMYinukE8nzYS' });
</script>
CapSolverブラウザ拡張機能は、どのページでもTurnstileパラメータを自動検出します。Cloudflare Turnstile解決ガイドは、詳細な実装パターンを提供します。
CrewAIエージェントがPlaywrightでブラウザを操作する場合、solve_on_page()を使用して自動検出を行います:
from capsolver_core import create_capsolver
from playwright.async_api import async_playwright
async def solve_turnstile_on_page(url: str):
cap = create_capsolver(api_key="YOUR_CAPSOLVER_API_KEY")
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page()
await page.goto(url)
# 自動検出とTurnstile解決
results = await cap.solve_on_page(page)
for r in results:
if r.solution:
print(f"Turnstileは解決され、入力されました: {r.filled}")
await browser.close()
await cap.aclose()
| 機能 | Turnstile vs reCAPTCHA |
|---|---|
| 解決時間 | 2〜5秒(速い) |
| 1回の解決コスト | 1,000回あたり$1〜$2 |
| ブラウザが必要 | いいえ(トークンモードは動作) |
| 可視ウィジェット | ときどき(リスクに基づく) |
| トークンフィールド名 | cf-turnstile-response |
ボーナスコードを取得してください: CapSolverダッシュボードでコード WEBS を使用して、毎回リチャージ時に追加の5%のボーナスを取得してください。
CrewAIでCloudflare Turnstileを解決するには、@toolデコレータを使用してCapSolverのエクセキュータをラップし、captcha_type: "cloudflare"を指定する必要があります。TurnstileはreCAPTCHAよりも速く(2〜5秒対5〜12秒)解決され、コストも低いため、高ボリュームのCrewAIワークフローに効率的です。CapSolverは、reCAPTCHAと同じAPIを介してTurnstileを透過的に処理するため、CrewAIツールはすべてのCAPTCHAタイプで動作し、コード変更なしで動作します。
いいえ。Turnstileは実際、解決時間が短い(reCAPTCHA v2と比べて2〜5秒対5〜12秒)で、1回の解決コストも低くなります。CapSolver APIは同じインターフェースで両方を処理します。ただcaptcha_typeパラメータを変更するだけで済みます。
Turnstileサイトキーは常に0xから始まり、0x4AAAAAAABkMYinukE8nzYSのようなアルファベットと数字の組み合わせになります。div.cf-turnstile要素のdata-sitekey属性に記載されています。
はい。captcha_typeをパラメータとして受け入れる統一されたツールを作成できます。エクセキュータはタイプ値に基づいて正しいソルバーにルーティングします。cloudflareはTurnstile用、reCaptchaV2またはreCaptchaV3はreCAPTCHA用です。
はい。トークンモードではwebsite_urlとwebsite_keyのみが必要です。ブラウザ、Playwright、ページレンダリングは必要ありません。トークンは直接返され、cf-turnstile-responseとしてHTTPリクエストに送信できます。