
Anh Tuan
Data Science Expert

Cloudflare Turnstile đang nhanh chóng thay thế các CAPTCHA truyền thống trong các ứng dụng web hiện đại. Khi các luồng công việc đa tác nhân của CrewAI gặp phải các trang được bảo vệ bởi Turnstile trong quá trình nghiên cứu web, thu thập dữ liệu hoặc các quy trình tự động, toàn bộ đội ngũ sẽ bị dừng lại. SDK capsolver-core của CapSolver giải quyết các thách thức Turnstile trong 2-5 giây, tích hợp liền mạch với hệ thống công cụ của CrewAI để đảm bảo các luồng công việc đa tác nhân của bạn hoạt động liên tục mà không bị gián đoạn.
cloudflare@tool bao quanh trình thực thi bất đồng bộ của CapSolverwebsite_url và website_key (mã sitekey của Turnstile bắt đầu bằng 0x)Cloudflare Turnstile đã trở thành hệ thống xác minh mặc định cho một tỷ lệ ngày càng tăng của web. Khác với reCAPTCHA, Turnstile hoạt động như một "thách thức không tương tác" — chạy ở nền và chỉ hiển thị widget có thể nhìn thấy khi điểm rủi ro tăng cao. Điều này khiến nó khó phát hiện và xử lý hơn so với các CAPTCHA truyền thống dạng hộp kiểm.
Các tác nhân CrewAI gặp Turnstile trên các nền tảng SaaS, các trang tài liệu API, các cửa hàng thương mại điện tử hiện đại (đặc biệt là Shopify), các cổng fintech và các hệ thống quản lý nội dung. Tài liệu về Cloudflare Turnstile cho biết hệ thống này xử lý hàng tỷ thách thức mỗi tháng trên hàng triệu trang, với tỷ lệ tăng trưởng 40%+ hàng năm.
Đối với các đội CrewAI thực hiện nghiên cứu web hoặc thu thập dữ liệu, Turnstile xuất hiện bất ngờ — một trang có thể tải bình thường hôm qua có thể triển khai Turnstile hôm nay sau khi trang bật quản lý bot của Cloudflare. Loại nhiệm vụ cloudflare của CapSolver xử lý điều này một cách minh bạch.
# Động cơ CapSolver core
pip install git+https://github.com/capsolver-ai/capsolver-core.git
# Công cụ tác nhân 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("Giải quyết Cloudflare Turnstile")
def solve_turnstile(website_url: str, website_key: str) -> str:
"""Giải quyết thách thức Cloudflare Turnstile và trả về token xác minh.
Sử dụng công cụ này khi trang web được bảo vệ bởi Cloudflare Turnstile.
website_key bắt đầu bằng '0x' và có thể được tìm thấy trong thuộc tính data-sitekey của phần tử div cf-turnstile trên trang.
Args:
website_url: URL đầy đủ của trang được bảo vệ bởi Turnstile
website_key: Mã sitekey của Turnstile (bắt đầu bằng 0x)
Returns:
Token cf-turnstile-response để gửi cùng các yêu cầu
"""
result = asyncio.run(executor.execute("solve_captcha", {
"captcha_type": "cloudflare",
"website_url": website_url,
"website_key": website_key
}))
if result["success"]:
return f"Turnstile đã được giải quyết trong ~3 giây. Token: {result['solution']['token']}"
return f"Giải quyết thất bại: {result['error']}"
from crewai import Agent, Task, Crew, Process
# Tác nhân có khả năng giải quyết Turnstile
researcher = Agent(
role="Chuyên gia Nghiên cứu Web",
goal="Truy cập các trang web được bảo vệ bởi Cloudflare và thu thập dữ liệu",
backstory="""Bạn nghiên cứu các trang web được bảo vệ bởi Cloudflare Turnstile.
Khi bạn gặp phải thách thức Turnstile (được xác định bởi các phần tử cf-turnstile
hoặc trang thách thức của Cloudflare), sử dụng công cụ solve_turnstile với URL trang
và mã sitekey (bắt đầu bằng 0x). Gửi token trả về như cf-turnstile-response.""",
tools=[solve_turnstile],
verbose=True
)
# Nhiệm vụ yêu cầu giải quyết Turnstile
research_task = Task(
description="""Truy cập trang web được bảo vệ bởi Cloudflare tại {url}.
Mã sitekey của Turnstile là {site_key}.
Giải quyết thách thức Turnstile và báo cáo token.""",
expected_output="Token Turnstile để truy cập tài nguyên được bảo vệ",
agent=researcher
)
crew = Crew(agents=[researcher], tasks=[research_task], process=Process.sequential)
result = crew.kickoff(inputs={"url": "https://example.com", "site_key": "0x4AAAAAAA..."})
Mã sitekey của Turnstile được tìm thấy trong mã HTML của trang:
<!-- Widget Turnstile -->
<div class="cf-turnstile" data-sitekey="0x4AAAAAAABkMYinukE8nzYS"></div>
<!-- Hoặc trong JavaScript -->
<script>
turnstile.render('#container', { sitekey: '0x4AAAAAAABkMYinukE8nzYS' });
</script>
Mở rộng trình duyệt CapSolver tự động phát hiện các tham số Turnstile trên bất kỳ trang nào. Hướng dẫn giải quyết Turnstile của Cloudflare cung cấp các mẫu triển khai chi tiết.
Đối với các tác nhân CrewAI điều khiển trình duyệt bằng Playwright, sử dụng solve_on_page() để phát hiện tự động:
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)
# Phát hiện và giải quyết Turnstile tự động
results = await cap.solve_on_page(page)
for r in results:
if r.solution:
print(f"Turnstile đã được giải quyết và điền: {r.filled}")
await browser.close()
await cap.aclose()
| Tính năng | Turnstile so với reCAPTCHA |
|---|---|
| Thời gian giải quyết | 2-5 giây (nhanh hơn) |
| Chi phí mỗi lần giải | $1-2 cho 1.000 lần |
| Trình duyệt cần thiết | Không (chế độ Token hoạt động) |
| Widget có thể nhìn thấy | Đôi khi (dựa trên rủi ro) |
| Tên trường token | cf-turnstile-response |
Nhận Mã Ưu đãi của Bạn: Sử dụng mã WEBS tại Bảng điều khiển CapSolver để nhận thêm 5% ưu đãi cho mỗi lần nạp tiền.
Giải quyết Cloudflare Turnstile trong CrewAI yêu cầu sử dụng định danh @tool bao quanh trình thực thi của CapSolver với captcha_type: "cloudflare". Việc giải quyết Turnstile nhanh hơn (2-5 giây) và chi phí thấp hơn reCAPTCHA, làm cho nó hiệu quả cho các quy trình CrewAI khối lượng lớn. CapSolver xử lý Turnstile một cách minh bạch thông qua cùng một API được sử dụng cho reCAPTCHA, vì vậy các công cụ CrewAI của bạn hoạt động trên tất cả các loại CAPTCHA mà không cần thay đổi mã.
Không. Turnstile thực tế nhanh hơn để giải quyết (2-5 giây so với 5-12 giây cho reCAPTCHA v2) và chi phí ít hơn mỗi lần giải. API CapSolver xử lý cả hai qua cùng một giao diện — chỉ cần thay đổi tham số captcha_type.
Mã sitekey của Turnstile luôn bắt đầu bằng 0x theo sau là các ký tự chữ số, ví dụ như 0x4AAAAAAABkMYinukE8nzYS. Chúng được tìm thấy trong thuộc tính data-sitekey trên các phần tử div.cf-turnstile.
Có. Tạo một công cụ thống nhất chấp nhận captcha_type như một tham số. Trình thực thi sẽ xử lý việc định tuyến đến trình giải đúng dựa trên giá trị loại — cloudflare cho Turnstile, reCaptchaV2 hoặc reCaptchaV3 cho reCAPTCHA.
Có. Chế độ Token chỉ cần website_url và website_key. Không cần trình duyệt, không cần Playwright, không cần hiển thị trang. Token sẽ được trả về trực tiếp và có thể được gửi cùng các yêu cầu HTTP dưới dạng cf-turnstile-response.
Tạo token reCAPTCHA v3 có điểm cao trong OpenAI Agents SDK bằng cách sử dụng công cụ hàm CapSolver.

Hướng dẫn đầy đủ về việc tích hợp giải CAPTCHA vào các cuộc trò chuyện đa tác nhân Microsoft AutoGen bằng cách sử dụng CapSolver với các hàm register_function và mô hình trò chuyện nhóm.
