
Anh Tuan
Data Science Expert

Cloudflare cung cấp các biện pháp bảo vệ mạnh mẽ, bao gồm Thử thách Cloudflare và CAPTCHA Turnstile, để bảo vệ các trang web khỏi bot độc hại và trình ghi dữ liệu tự động. Việc hiểu và vượt qua các thử thách này có thể rất quan trọng đối với những người cần truy cập vượt qua các rào cản bảo vệ này vì mục đích hợp pháp.
Cloudflare sử dụng nhiều kỹ thuật để phát hiện và giảm thiểu lưu lượng không mong muốn. Trong số đó có Thử thách Cloudflare, thường bao gồm các bài kiểm tra JavaScript hoặc CAPTCHA, và Turnstile, một CAPTCHA thân thiện với người dùng, giảm thiểu tương tác của người dùng. Các hệ thống này được thiết kế để phân biệt giữa người dùng thực và bot tự động một cách hiệu quả.
Trình duyệt tự động:
puppeteer-extra-plugin-stealth có thể được sử dụng để vượt qua Thử thách Cloudflare bằng cách mô phỏng hành vi trình duyệt tự nhiên.Proxy chất lượng cao:
Dịch vụ giải CAPTCHA:
Đầu tiên, hãy xem cách Thử thách Cloudflare trông như thế nào:

Đôi khi, trang này có thể có Turnstile

Nhận mã thưởng CapSolver của bạn
Đừng bỏ lỡ cơ hội tối ưu hóa quy trình của bạn! Sử dụng mã thưởng CAPN khi nạp tiền vào tài khoản CapSolver và nhận thêm 5% thưởng cho mỗi lần nạp, không giới hạn. Truy cập Bảng điều khiển CapSolver để nhận thưởng ngay hôm nay!
Nếu bạn có một trang tương tự nơi bạn phải chờ cho đến khi xác minh được hoàn tất và thường có các kiểm tra bổ sung với Turnstile, thì đó là Thử thách Cloudflare.
Có một số yêu cầu để giải loại thử thách này:
Token được trả về trong phản hồi của phương thức getTaskResult là giá trị của cookie cf_clearance mà bạn sẽ cần tạo.# -*- coding: utf-8 -*-
import time
import requests
import tls_client
API_KEY = "" # TODO: khóa API của bạn
page_url = '' # TODO: URL trang của bạn 'https://example.com
proxy = "" # TODO: proxy của bạn
def call_capsolver():
data = {
"clientKey": API_KEY,
"task": {
"type": 'AntiCloudflareTask',
"websiteURL": page_url,
"proxy": proxy,
}
}
uri = 'https://api.capsolver.com/createTask'
res = requests.post(uri, json=data)
resp = res.json()
task_id = resp.get('taskId')
if not task_id:
print("không nhận được taskId:", res.text)
return
print('tạo taskId:', task_id)
while True:
time.sleep(1)
data = {
"clientKey": API_KEY,
"taskId": task_id
}
response = requests.post('https://api.capsolver.com/getTaskResult', json=data)
resp = response.json()
status = resp.get('status', '')
if status == "ready":
print("thành công => ", response.text)
return resp.get('solution')
if status == "failed" or resp.get("errorId"):
print("thất bại! => ", response.text)
return
def request_site(solution):
# TODO nếu bạn muốn sử dụng tls_client
session = tls_client.Session(
client_identifier="chrome_120",
random_tls_extension_order=True
)
return session.get(
page_url,
headers=solution.get('headers'),
cookies=solution.get('cookies'),
proxy=proxy,
allow_redirects=True,
)
def main():
# yêu cầu đầu tiên:
res = request_site({})
print('1. mã trạng thái phản hồi:', res.status_code)
if res.status_code != 403:
print("proxy của bạn tốt và không gặp Thử thách Cloudflare")
return
elif 'window._cf_chl_opt' not in res.text:
print('==== proxy bị chặn ==== ')
return
# gọi capSolver:
solution = call_capsolver()
if not solution:
return
# yêu cầu thứ hai (xác minh giải pháp):
res = request_site(solution)
print('2. mã trạng thái phản hồi:', res.status_code)
if res.status_code == 200:
##print("2. nội dung phản hồi:\n", res.text)
print("đã vượt qua Thử thách Cloudflare thành công")
if __name__ == '__main__':
main()
Cloudflare cung cấp 3 loại CAPTCHA Turnstile của Cloudflare
Thử thách được quản lý

Thử thách không tương tác

Thử thách ẩn
không thể nhìn thấy, bạn có thể kiểm tra trên mạng / các tập lệnh được tải và xem liệu Turnstile có được sử dụng hay không
CAPTCHA Turnstile là sự thay thế cho các thử thách CAPTCHA truyền thống của Cloudflare, tập trung vào trải nghiệm người dùng và bảo mật. Dưới đây là cách tiếp cận để giải quyết nó:
Hiểu thử thách:
Tích hợp API giải CAPTCHA:
Duy trì tính nhất quán của trình duyệt:
Thích ứng với các thử thách JavaScript:
import time
from curl_cffi import requests
CAPSOLVER_API_KEY = "Khóa API của bạn từ CAPSOLVER.COM"
PAGE_URL = ""
WEBSITE_KEY = ""
def solvecf(metadata_action=None, metadata_cdata=None):
url = "https://api.capsolver.com/createTask"
task = {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": PAGE_URL,
"websiteKey": WEBSITE_KEY,
}
if metadata_action or metadata_cdata:
task["metadata"] = {}
if metadata_action:
task["metadata"]["action"] = metadata_action
if metadata_cdata:
task["metadata"]["cdata"] = metadata_cdata
data = {
"clientKey": CAPSOLVER_API_KEY,
"task": task
}
response_data = requests.post(url, json=data).json()
print(response_data)
return response_data['taskId']
def solutionGet(taskId):
url = "https://api.capsolver.com/getTaskResult"
status = ""
while status != "ready":
data = {"clientKey": CAPSOLVER_API_KEY, "taskId": taskId}
response_data = requests.post(url, json=data).json()
print(response_data)
status = response_data.get('status', '')
print(status)
if status == "ready":
return response_data['solution']
time.sleep(2)
def main():
start_time = time.time()
taskId = solvecf()
solution = solutionGet(taskId)
if solution:
user_agent = solution['userAgent']
token = solution['token']
print("User_Agent:", user_agent)
print("Đã giải CAPTCHA Turnstile, token:", token)
end_time = time.time()
elapsed_time = end_time - start_time
print(f"Thời gian để giải CAPTCHA: {elapsed_time} giây")
if __name__ == "__main__":
main()
const axios = require('axios');
const CAPSOLVER_API_KEY = "";
const PAGE_URL = "";
const WEBSITE_KEY = "";
async function solvecf(metadata_action = null, metadata_cdata = null) {
const url = "https://api.capsolver.com/createTask";
const task = {
type: "AntiTurnstileTaskProxyLess",
websiteURL: PAGE_URL,
websiteKey: WEBSITE_KEY,
};
if (metadata_action || metadata_cdata) {
task.metadata = {};
if (metadata_action) {
task.metadata.action = metadata_action;
}
if (metadata_cdata) {
task.metadata.cdata = metadata_cdata;
}
}
const data = {
clientKey: CAPSOLVER_API_KEY,
task: task
};
const response = await axios.post(url, data);
console.log(response.data);
return response.data.taskId;
}
async function solutionGet(taskId) {
const url = "https://api.capsolver.com/getTaskResult";
let status = "";
while (status !== "ready") {
const data = { clientKey: CAPSOLVER_API_KEY, taskId: taskId };
const response = await axios.post(url, data);
console.log(response.data);
status = response.data.status;
console.log(status);
if (status === "ready") {
return response.data.solution;
}
await new Promise(resolve => setTimeout(resolve, 2000));
}
}
async function main() {
const start_time = Date.now();
const taskId = await solvecf();
const solution = await solutionGet(taskId);
if (solution) {
const user_agent = solution.userAgent;
const token = solution.token;
console.log("User_Agent:", user_agent);
console.log("Đã giải CAPTCHA Turnstile, token:", token);
}
const end_time = Date.now();
const elapsed_time = (end_time - start_time) / 1000;
console.log(`Thời gian để giải CAPTCHA: ${elapsed_time} giây`);
}
main().catch(console.error);
Các biện pháp bảo mật của Cloudflare, bao gồm Thử thách và CAPTCHA Turnstile, được thiết kế để bảo vệ các trang web khỏi truy cập tự động trong khi giảm thiểu sự phiền toái cho người dùng hợp pháp. Đối với các nhà phát triển, người kiểm thử hoặc doanh nghiệp cần truy cập tự động cho các mục đích hợp pháp, việc hiểu các thử thách này và sử dụng các giải pháp mạnh mẽ là điều quan trọng.
Bằng cách kết hợp các proxy chất lượng cao, tự động hóa trình duyệt với kỹ thuật ẩn danh, và các dịch vụ giải CAPTCHA chuyên dụng như CapSolver , bạn có thể vượt qua các biện pháp bảo vệ của Cloudflare một cách đáng tin cậy. Các ví dụ Python và Node.js được cung cấp cho thấy cách tích hợp CapSolver để xử lý cả các thử thách Cloudflare truyền thống và CAPTCHA Turnstile một cách hiệu quả.
Với việc triển khai đúng cách, quy trình tự động hóa có thể đạt tỷ lệ thành công cao trong khi duy trì tuân thủ và giảm thiểu phát hiện.
Câu hỏi 1: Sự khác biệt giữa Thử thách Cloudflare và CAPTCHA Turnstile là gì?
Trả lời 1: Thử thách Cloudflare thường bao gồm các kiểm tra JavaScript hoặc CAPTCHA hiển thị để xác minh người dùng. Turnstile là CAPTCHA thân thiện với người dùng mới của Cloudflare, có thể chạy ở nền, giảm tương tác của người dùng trong khi vẫn xác minh tính xác thực.
Câu hỏi 2: CAPTCHA Turnstile có thể được giải bằng chương trình không?
Trả lời 2: Có. Các dịch vụ như CapSolver phân tích lưu lượng mạng và tương tác người dùng để giải các thử thách Turnstile, cả ở dạng hiển thị và ẩn.
Câu hỏi 3: Tôi có cần xoay proxy khi giải CAPTCHA Cloudflare không?
Trả lời 3: Sử dụng proxy nhà ở hoặc proxy chất lượng cao có thể xoay IP là khuyến khích cao. Cloudflare theo dõi hành vi IP, vì vậy việc sử dụng IP nhất quán giảm rủi ro bị chặn.
Câu hỏi 4: Tôi có thể sử dụng cùng phiên bản trình duyệt cho nhiều thử thách không?
Trả lời 4: Tốt nhất nên duy trì tính nhất quán của trình duyệt cho mỗi phiên, sử dụng cùng user-agent, cookie, header và phiên bản TLS, vì sự không khớp có thể kích hoạt bảo mật của Cloudflare.
Câu hỏi 5: CapSolver giải CAPTCHA Turnstile của Cloudflare nhanh như thế nào?
Trả lời 5: CapSolver thường giải hầu hết các thử thách Cloudflare trong vài giây (thường ~5 giây), tùy thuộc vào điều kiện mạng, chất lượng proxy và độ phức tạp của nhiệm vụ.
Câu hỏi 6: Có thư viện chính thức/ ví dụ để tích hợp CapSolver không?
Trả lời 6: Có, CapSolver cung cấp các ví dụ chính thức cho Python và Node.js, như được hiển thị trong bài viết, bao gồm cả Thử thách Cloudflare và CAPTCHA Turnstile.
Học cách khắc phục lỗi Cloudflare Error 1005 bị từ chối truy cập khi quét dữ liệu. Khám phá các giải pháp như proxy nhà ở, dấu vân tay trình duyệt và CapSolver cho CAPTCHA. Tối ưu hóa việc trích xuất dữ liệu.

Khám phá cách xử lý hiệu quả Cloudflare Turnstile trong các quy trình AI bằng các kỹ thuật che giấu của Playwright và CapSolver để giải captcha đáng tin cậy. Học các chiến lược tích hợp thực tế và các phương pháp tốt nhất để tự động hóa không gián đoạn.

Bị mắc kẹt ở "xác minh bạn là người" hoặc "Thử thách Cloudflare"? Học về các nguyên nhân phổ biến và khám phá các giải pháp kỹ thuật để hệ thống tự động vượt qua xác minh mỗi lần.

Tìm hiểu cách vượt qua Cloudflare Challenge và Turnstile trong năm 2026 để thu thập dữ liệu web liền mạch. Khám phá tích hợp Capsolver, mẹo về dấu vân tay TLS và các bản sửa lỗi cho các lỗi thường gặp để tránh địa ngục CAPTCHA. Tiết kiệm thời gian và mở rộng quy mô quá trình trích xuất dữ liệu của bạn.
