
Emma Foster
Machine Learning Engineer

Cloudflare Turnstile secara cepat menggantikan CAPTCHA tradisional di berbagai aplikasi web modern. Ketika alur kerja multi-agent CrewAI menemui halaman yang dilindungi Turnstile selama penelitian web, pengumpulan data, atau alur kerja otomatis, seluruh tim berhenti. SDK capsolver-core dari CapSolver menyelesaikan tantangan Turnstile dalam 2-5 detik, terintegrasi secara mulus dengan sistem alat CrewAI untuk menjaga alur kerja multi-agent tetap berjalan tanpa gangguan.
cloudflare@tool yang mengelilingi executor asinkron CapSolverwebsite_url dan website_key (kunci situs Turnstile yang dimulai dengan 0x)Cloudflare Turnstile telah menjadi sistem verifikasi default untuk bagian yang semakin besar dari web. Berbeda dengan reCAPTCHA, Turnstile beroperasi sebagai "tantangan non-interoperasi" — berjalan di latar belakang dan hanya menampilkan widget yang terlihat ketika skor risiko meningkat. Hal ini membuatnya lebih sulit untuk dideteksi dan ditangani dibandingkan CAPTCHA checkbox tradisional.
Agen CrewAI menemui Turnstile pada platform SaaS, situs dokumentasi API, toko e-commerce modern (terutama Shopify), portal fintech, dan sistem manajemen konten. Dokumentasi Turnstile Cloudflare menunjukkan bahwa sistem ini memproses miliaran tantangan setiap bulan di jutaan situs, dengan adopsi yang tumbuh 40%+ per tahun.
Untuk tim CrewAI yang melakukan penelitian web atau pengumpulan data, Turnstile muncul tanpa pemberitahuan — halaman yang sebelumnya dapat dimuat dengan baik mungkin menerapkan Turnstile hari ini setelah situs mengaktifkan manajemen bot Cloudflare. Tipe tugas cloudflare dari CapSolver menangani ini secara transparan.
# Mesin inti CapSolver
pip install git+https://github.com/capsolver-ai/capsolver-core.git
# Alat agen 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("Selesaikan Cloudflare Turnstile")
def solve_turnstile(website_url: str, website_key: str) -> str:
"""Menyelesaikan tantangan Cloudflare Turnstile dan mengembalikan token verifikasi.
Gunakan alat ini ketika situs web dilindungi oleh Cloudflare Turnstile.
website_key dimulai dengan '0x' dan dapat ditemukan dalam atribut data-sitekey elemen div cf-turnstile halaman.
Argumen:
website_url: URL lengkap halaman yang dilindungi Turnstile
website_key: Kunci situs Turnstile (dimulai dengan 0x)
Mengembalikan:
Token cf-turnstile-response untuk dikirim bersama permintaan
"""
result = asyncio.run(executor.execute("solve_captcha", {
"captcha_type": "cloudflare",
"website_url": website_url,
"website_key": website_key
}))
if result["success"]:
return f"Turnstile selesai dalam ~3s. Token: {result['solution']['token']}"
return f"Pemecahan gagal: {result['error']}"
from crewai import Agent, Task, Crew, Process
# Agen dengan kemampuan penyelesaian Turnstile
researcher = Agent(
role="Spesialis Penelitian Web",
goal="Mengakses situs web yang dilindungi Cloudflare dan mengumpulkan data",
backstory="""Anda meneliti situs web yang dilindungi oleh Cloudflare Turnstile.
Ketika Anda menemui tantangan Turnstile (dikenali oleh elemen cf-turnstile
atau halaman tantangan Cloudflare), gunakan alat solve_turnstile dengan URL halaman
dan kunci situs (dimulai dengan 0x). Kirim token yang diperoleh sebagai
cf-turnstile-response.""",
tools=[solve_turnstile],
verbose=True
)
# Tugas yang memerlukan penyelesaian Turnstile
research_task = Task(
description="""Akses halaman yang dilindungi Cloudflare di {url}.
Kunci situs Turnstile adalah {site_key}.
Selesaikan tantangan Turnstile dan laporkan token.""",
expected_output="Token Turnstile untuk mengakses sumber daya yang dilindungi",
agent=researcher
)
crew = Crew(agents=[researcher], tasks=[research_task], process=Process.sequential)
result = crew.kickoff(inputs={"url": "https://example.com", "site_key": "0x4AAAAAAA..."})
Kunci situs Turnstile ditemukan dalam HTML halaman:
<!-- Widget Turnstile -->
<div class="cf-turnstile" data-sitekey="0x4AAAAAAABkMYinukE8nzYS"></div>
<!-- Atau dalam JavaScript -->
<script>
turnstile.render('#container', { sitekey: '0x4AAAAAAABkMYinukE8nzYS' });
</script>
Ekstensi browser CapSolver mendeteksi otomatis parameter Turnstile di halaman mana pun. Panduan penyelesaian Cloudflare Turnstile memberikan pola implementasi yang rinci.
Untuk agen CrewAI yang menggerakkan browser dengan Playwright, gunakan solve_on_page() untuk deteksi otomatis:
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)
# Deteksi dan selesaikan Turnstile otomatis
results = await cap.solve_on_page(page)
for r in results:
if r.solution:
print(f"Turnstile selesai dan diisi: {r.filled}")
await browser.close()
await cap.aclose()
| Fitur | Turnstile vs reCAPTCHA |
|---|---|
| Waktu penyelesaian | 2-5 detik (lebih cepat) |
| Biaya per penyelesaian | $1-2 per 1.000 |
| Browser diperlukan | Tidak (mode token bekerja) |
| Widget terlihat | Kadang-kadang (berdasarkan risiko) |
| Nama bidang token | cf-turnstile-response |
Dapatkan Kode Bonus Anda: Gunakan kode WEBS di Dasbor CapSolver untuk mendapatkan bonus tambahan 5% pada setiap recharge.
Menyelesaikan Cloudflare Turnstile di CrewAI memerlukan dekorator @tool yang mengelilingi executor CapSolver dengan captcha_type: "cloudflare". Penyelesaian Turnstile lebih cepat (2-5 detik) dan lebih murah daripada reCAPTCHA, membuatnya efisien untuk alur kerja CrewAI volume tinggi. CapSolver menangani Turnstile secara transparan melalui API yang sama yang digunakan untuk reCAPTCHA, sehingga alat CrewAI Anda berjalan di semua jenis CAPTCHA tanpa perubahan kode.
Tidak. Turnstile justru lebih cepat dipecahkan (2-5 detik vs 5-12 detik untuk reCAPTCHA v2) dan biayanya lebih murah per penyelesaian. API CapSolver menangani keduanya melalui antarmuka yang sama — cukup ubah parameter captcha_type.
Kunci situs Turnstile selalu dimulai dengan 0x diikuti oleh karakter alfanumerik, seperti 0x4AAAAAAABkMYinukE8nzYS. Mereka ditemukan dalam atribut data-sitekey pada elemen div.cf-turnstile.
Ya. Buat alat yang terpadu yang menerima captcha_type sebagai parameter. Executor menangani pengalihan ke solver yang benar berdasarkan nilai tipe — cloudflare untuk Turnstile, reCaptchaV2 atau reCaptchaV3 untuk reCAPTCHA.
Ya. Mode token hanya memerlukan website_url dan website_key. Tidak diperlukan browser, tidak diperlukan Playwright, tidak diperlukan rendering halaman. Token dikembalikan langsung dan dapat dikirim dengan permintaan HTTP sebagai cf-turnstile-response.
Hasilkan token reCAPTCHA v3 dengan skor tinggi di OpenAI Agents SDK menggunakan function_tool CapSolver.

Panduan lengkap mengintegrasikan penyelesaian CAPTCHA ke dalam percakapan multi-agennya Microsoft AutoGen dengan menggunakan CapSolver dengan register_function dan pola percakapan grup.
