
Aloísio Vítor
Image Processing Expert

Lỗi Cloudflare 1020 cho biết quyền truy cập đã bị từ chối. Lỗi này xảy ra khi một quy tắc của tường lửa trang web, được bảo vệ bởi Cloudflare, bị vi phạm. Các hành động như gửi quá nhiều yêu cầu đến trang có thể dẫn đến vi phạm này.
Các cách phổ biến để khắc phục vấn đề này:
Lỗi Cloudflare 1015 xảy ra khi địa chỉ IP của bạn bị đánh dấu và cấm bởi Cloudflare do vượt quá giới hạn tốc độ của trang web trong quá trình quét. Điều này có thể dẫn đến việc gặp phải lỗi này.
Các cách phổ biến để khắc phục vấn đề này:
Mã trạng thái 403 là trạng thái phản hồi "Cấm", do máy chủ phát ra khi nó nhận biết yêu cầu là hợp lệ nhưng từ chối thực hiện. Điều này có thể xảy ra do thiếu các tiêu đề cần thiết trong yêu cầu của bạn, chẳng hạn như tiêu đề CORS, JWT hoặc tiêu đề xác thực mà máy chủ mong đợi.
Nếu trang web có thể truy cập bình thường và việc thêm tiêu đề đúng không giải quyết được vấn đề, có thể máy chủ đang phát hiện các yêu cầu của bạn là tự động.
Các cách phổ biến để khắc phục vấn đề này:
Nhận thưởng mã giảm giá CapSolver của bạn
Tăng ngân sách tự động hóa của bạn ngay lập tức!
Sử dụng mã giảm giá CAPN khi nạp tiền vào tài khoản CapSolver để nhận thêm 5% cho mỗi lần nạp tiền — không có giới hạn.
Nhận mã giảm giá ngay bây giờ trong Bảng điều khiển CapSolver
.
Cloudflare challenge trông như:

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

Kiểm tra xem bạn có cần giải Cloudflare Challenge 5s hay không chỉ là turnstile, đối với turnstile đơn thuần, vui lòng tiếp tục đọc blog này.
Có một số yêu cầu khi giải quyết thử thách này bằng Capsolver.
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AntiCloudflareTask",
"websiteURL": "https://www.yourwebsite.com",
"proxy": "158.120.100.23:334:user:pass"
}
}
Sau khi gửi thành công, API sẽ trả về taskId
{
"errorId": 0,
"taskId": "014fc55c-46c9-41c8-9de7-6cb35d984edc",
"status": "idle"
}
Lấy giá trị taskId này và sử dụng để truy xuất kết quả bằng phương pháp getTaskResult
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "taskId"
}
Tùy thuộc vào tải hệ thống, bạn sẽ nhận được kết quả trong khoảng thời gian từ 1s đến 20s
Nếu bạn nhận được ERROR_CAPTCHA_SOLVE_FAILED trong phản hồi, có thể có một số lý do:
Nếu bạn nhận được phản hồi thành công, sẽ trông như:
{
"errorId": 0,
"taskId": "d8d3a8b4-30cc-4b09-802a-a476ca17fa54",
"status": "ready",
"solution": {
"accept-language": "en-US,en;q=0.9",
"cookies": {
},
"headers": {
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.9",
"cache-control": "max-age=0",
"content-type": "application/x-www-form-urlencoded",
"origin": "",
"referer": "",
"sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
"sec-ch-ua-arch": "\"arm\"",
"sec-ch-ua-bitness": "\"64\"",
"sec-ch-ua-full-version": "\"120.0.6099.71\"",
"sec-ch-ua-full-version-list": "\"Not_A Brand\";v=\"8.0.0.0\", \"Chromium\";v=\"120.0.6099.71\", \"Google Chrome\";v=\"120.0.6099.71\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-model": "\"\"",
"sec-ch-ua-platform": "\"macOS\"",
"sec-ch-ua-platform-version": "\"10.14.6\"",
"sec-fetch-dest": "document",
"sec-fetch-mode": "navigate",
"sec-fetch-site": "same-origin",
"sec-fetch-user": "?1",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
},
"proxy": "proxy của bạn",
"token": "token cf clearance",
"type": "challenge",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
}
Từ phản hồi này, bạn cần phân tích các giá trị của cookies, headers, token.
Yêu cầu của bạn cần phải trông như:
cf_clearance mà bạn cần tạo# -*- coding: utf-8 -*-
import requests
import time
import tls_client
# TODO: API key của bạn
API_KEY = ""
proxy = ""
# TODO: URL trang đích:
page_url = ''
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):
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,
)
def main():
solution = {
"headers": {
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"sec-fetch-site": "none",
"sec-fetch-mode": "navigate",
"sec-fetch-user": "?1",
"sec-fetch-dest": "document",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.9",
}
}
# Yêu cầu đầu tiên (kiểm tra proxy của bạn):
res = request_site(solution)
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 bị Cloudflare Challenge")
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 __name__ == '__main__':
main()
Cloudflare Turnstile Captcha trông như:
Thử thách được quản lý

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

Thử thách không thể nhìn thấy
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
Kiểm tra xem bạn có cần giải Cloudflare Turnstile Captcha hay không phải là Cloudflare Challenge 5s, đối với chỉ Cloudflare Challenge, vui lòng tiếp tục đọc blog này.
Có một số yêu cầu khi giải quyết thử thách này bằng Capsolver.
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": "https://www.yourwebsite.com",
"websiteKey": "0x4XXXXXXXXXXXXXXXXX",
"metadata": {
"action": "login", //tùy chọn
"cdata": "0000-1111-2222-3333-example-cdata" //tùy chọn
}
}
}
"action" và "cdata" là tùy chọn, đôi khi sẽ được yêu cầu và đôi khi không.
Tùy thuộc vào cấu hình của trang web.
action là giá trị của thuộc tính data-action của phần tử Turnstile nếu tồn tại.
cdata là giá trị của thuộc tính data-cdata của phần tử Turnstile nếu tồn tại.
Sau khi gửi đúng, API sẽ trả về taskId
{
"errorId": 0,
"taskId": "014fc55c-46c9-41c8-9de7-6cb35d984edc",
"status": "idle"
}
Lấy giá trị taskId này và sử dụng để truy xuất kết quả bằng phương pháp getTaskResult
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "taskId"
}
Tùy thuộc vào tải hệ thống, bạn sẽ nhận được kết quả trong khoảng thời gian từ 1s đến 20s
Nếu bạn nhận được ERROR_CAPTCHA_SOLVE_FAILED trong phản hồi, có thể có một số lý do:
Nếu bạn nhận được phản hồi thành công, sẽ trông như:
{
"errorId": 0,
"taskId": "d1e1487a-2cd8-4d4a-aa4d-4ba5b6c65484",
"status": "ready",
"solution": {
"token": "0.cZJPqwnyDxL86HvAXSk4lUTQhjwfyXDcR3qpVwFofuzosoKr1otKj_A-utazXx_Tnp1B2V6womrltBpRw9HbY851ktpaF7sBN-gQwtoRUew4Wj5PO4-WLYPnNRpXxludXzyQ.1oHJhu7619fb8c07ab942bd1587bc76e0e3cef95c7aa75400c4f7d3",
"type": "turnstile",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
}
Từ phản hồi này, bạn cần phân tích giá trị của token và đây sẽ là giải pháp captcha mà bạn cần gửi đến trang web.
import time
from curl_cffi import requests
CAPSOLVER_API_KEY = "API KEY của bạn trên 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 Turnstile Captcha, 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 Turnstile Captcha, 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);
Cloudflare triển khai nhiều cơ chế bảo vệ — từ các khối HTTP tiêu chuẩn như 1020, 403, 429 (1015) đến các thách thức nâng cao như Cloudflare Challenge 5s và Turnstile Captcha. Khi thực hiện quét trang web hoặc tự động hóa, xác định cơ chế bảo vệ đang hoạt động là bước đầu tiên quan trọng.
Hướng dẫn này giải thích các mã trạng thái Cloudflare phổ biến, cách phân biệt giữa Challenge 5s và Turnstile Captcha, và cung cấp các ví dụ hoạt động để giải quyết chúng bằng Capsolver API, bao gồm Python & NodeJS.
Bằng cách chọn phương pháp phù hợp — xoay proxy, cài đặt header đúng, bảo vệ dấu vân tay TLS, hoặc giải CAPTCHA/Thách thức bằng lập trình, bạn có thể nâng cao đáng kể tỷ lệ thành công khi quét trang web và giảm thiểu việc bị chặn.
Nếu yêu cầu của bạn vẫn bị ghi nhận, hãy kiểm tra lại cấu hình scraper của bạn: chất lượng proxy, header, dấu vân tay TLS và tần suất yêu cầu thường ảnh hưởng nhiều như chính công cụ giải CAPTCHA.
Kiểm tra giao diện người dùng hoặc yêu cầu mạng.
Nguyên nhân có thể là:
Có. Với proxy tốt, dấu vân tay thay đổi và logic tái sử dụng token, bạn có thể mở rộng việc quét — đảm bảo tuân thủ điều khoản trang web và yêu cầu pháp lý địa phương.
Turnstile thường dễ giải hơn vì nó thường trả về một token duy nhất. Challenge 5s yêu cầu cookie, header và sự nhất quán proxy, khiến nó phức tạp hơn.
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.
