
Anh Tuan
Data Science Expert
Đã xuất bản Jul 11, 2023
Đã cập nhật Dec 01, 2025 · đọc tối thiểu

AntiBotdeflectorTaskProxyLess khi bạn có URL trang, tên miền BotDeflector và mã lưu lượng (flowToken); kết quả bất đồng bộ được trả về trong solution.token.VisionEngine với module: "botdeflector" chỉ dành cho các thử thách trực quan cung cấp hình ảnh nền và hình ảnh trước; yêu cầu này trả về tọa độ nhận dạng trực tiếp.websiteURL và domain là các trường riêng biệt của BotDeflector và có thể chứa các tên miền khác nhau. Thu thập cả hai từ phiên trình duyệt được ủy quyền.Các phòng chờ ảo của Queue-it kiểm soát truy cập trong các đợt tăng đột biến lưu lượng như phát hành vé, ra mắt sản phẩm và sự kiện hàng tồn kho hạn chế. Bước CAPTCHA được sử dụng trong các tích hợp hiện tại không chỉ là một hình ảnh chứa ký tự: BotDeflector cung cấp một quy trình thử thách có thể yêu cầu kết quả token hoặc tọa độ trực quan.
Hướng dẫn cập nhật này giải thích cả hai phương pháp được hỗ trợ với CapSolver. Phương pháp token là tích hợp mặc định cho flowToken đã thu thập; phương pháp VisionEngine áp dụng khi trình duyệt hiển thị các hình ảnh nền và hình ảnh trước tương ứng. Tài liệu API CAPTCHA của CapSolver giải thích chu kỳ nhiệm vụ chung và mô hình lỗi.
Luồng Queue-it hiện tại nên được mô hình hóa như BotDeflector thay vì một dạng OCR độc lập. Một thử thách BotDeflector chứa dữ liệu đầu vào liên quan đến phiên, và kết quả mong đợi phụ thuộc vào phương pháp tích hợp:
| Phương pháp | Nhiệm vụ CapSolver | Dữ liệu thử thách cần thiết | Kết quả |
|---|---|---|---|
| Chế độ token | AntiBotdeflectorTaskProxyLess |
websiteURL, domain, flowToken |
solution.token sau khi kiểm tra |
| Chế độ nhận dạng hình ảnh | VisionEngine với module: "botdeflector" |
image, imageBackground, websiteURL |
solution.points trong phản hồi createTask |
Các chế độ này không thể thay thế cho nhau. Chế độ token không chấp nhận hình ảnh Base64 thay thế cho flowToken, trong khi chế độ nhận dạng hình ảnh không trả về token BotDeflector cuối cùng. Kiểm tra triển khai thử thách trong phiên trình duyệt được ủy quyền và chọn phương pháp phù hợp với dữ liệu có sẵn.
Phòng chờ lưu lượng của Queue-it và trình giải CAPTCHA cũng sử dụng các hàng đợi khác nhau. Phòng chờ xác định khi nào người truy cập có thể tiếp tục, trong khi API CapSolver xử lý nhiệm vụ thử thách. Từ điển hàng đợi yêu cầu cung cấp thông tin hữu ích để phân biệt giữa hàng đợi ứng dụng và kiểm tra nhiệm vụ API.
Chuẩn bị các yếu tố sau trước khi tạo nhiệm vụ:
flowToken hiện tại được thu thập từ cùng một phiên trình duyệt.https://api.capsolver.com.Không đặt khóa API sản xuất trực tiếp trong mã nguồn. Các ví dụ sử dụng YOUR_API_KEY, FLOW_TOKEN_FROM_PAGE và tên miền ví dụ như các mẫu thay thế.
Chế độ token sử dụng AntiBotdeflectorTaskProxyLess, sau đó kiểm tra getTaskResult cho đến khi CapSolver trả về solution.token. Các tên trường và hình dạng phản hồi tuân theo tài liệu chế độ token BotDeflector.
Thu thập các giá trị này từ cùng một phiên trình duyệt được ủy quyền:
websiteURL: URL trang đầy đủ nơi thử thách BotDeflector đang chạy.domain: tên miền BotDeflector được yêu cầu bởi thử thách đó.flowToken: token thử thách hiện tại được hiển thị bởi luồng BotDeflector.Không giả định domain là tên miền từ websiteURL. Định nghĩa nhiệm vụ chính thức xử lý chúng như các đầu vào riêng biệt, và chúng có thể không sử dụng cùng một tên miền.
Gửi các giá trị đã thu thập đến createTask:
curl --request POST 'https://api.capsolver.com/createTask' \
--header 'Content-Type: application/json' \
--data '{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AntiBotdeflectorTaskProxyLess",
"websiteURL": "https://queue.example.com/waitingroom/",
"domain": "challenge.example.net",
"flowToken": "FLOW_TOKEN_FROM_PAGE"
}
}'
Một phản hồi thành công chứa ID nhiệm vụ:
{
"errorId": 0,
"errorCode": "",
"errorDescription": "",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Kiểm tra errorId trước khi lưu taskId. Nếu tạo nhiệm vụ thất bại, ghi lại errorCode và errorDescription mà không ghi lại khóa API hoặc token thử thách đầy đủ.
Gửi ID nhiệm vụ trả về đến getTaskResult:
curl --request POST 'https://api.capsolver.com/getTaskResult' \
--header 'Content-Type: application/json' \
--data '{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}'
Tiếp tục kiểm tra khi trạng thái phản hồi là processing. Dừng ngay lập tức nếu API trả về errorId khác 0 hoặc trạng thái thất bại. Khi nhiệm vụ sẵn sàng, đọc token từ solution.token:
{
"errorId": 0,
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006",
"status": "ready",
"solution": {
"token": "BOTDEFLECTOR_TOKEN"
}
}
Truyền token trả về đến điểm tích hợp BotDeflector được sử dụng bởi cùng phiên trình duyệt Queue-it. Không tạo phiên trình duyệt mới giữa việc thu thập flowToken và áp dụng kết quả. Thay đổi phiên, điều hướng hoặc làm mới thử thách có thể làm mất bối cảnh và yêu cầu nhiệm vụ mới.
Điểm chèn hoặc gửi chính xác thuộc về triển khai Queue-it mà bạn đang kiểm tra. Thu thập nó từ tích hợp ứng dụng của bạn thay vì dựa vào một trình chọn chung.
Nhận mã ưu đãi 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ã ưu đãi CAP26 khi nạp tiền vào tài khoản CapSolver để nhận thêm 5% ưu đãi cho mỗi lần nạp — không giới hạn.
Nhận mã ngay trong Bảng điều khiển CapSolver
Ví dụ sau tạo một nhiệm vụ BotDeflector, kiểm tra với thời gian chờ giới hạn và trả về solution.token. Nó sử dụng các giá trị thử thách mẫu vì flowToken thực tế phải đến từ phiên trình duyệt được ủy quyền của bạn.
import os
import time
import requests
API_BASE = "https://api.capsolver.com"
API_KEY = os.environ["CAPSOLVER_API_KEY"]
def solve_botdeflector(website_url, domain, flow_token, timeout=120):
create_response = requests.post(
f"{API_BASE}/createTask",
json={
"clientKey": API_KEY,
"task": {
"type": "AntiBotdeflectorTaskProxyLess",
"websiteURL": website_url,
"domain": domain,
"flowToken": flow_token,
},
},
timeout=30,
)
create_response.raise_for_status()
created = create_response.json()
if created.get("errorId"):
raise RuntimeError(
f"createTask failed: {created.get('errorCode')} - "
f"{created.get('errorDescription')}"
)
task_id = created["taskId"]
deadline = time.monotonic() + timeout
while time.monotonic() < deadline:
time.sleep(2)
result_response = requests.post(
f"{API_BASE}/getTaskResult",
json={"clientKey": API_KEY, "taskId": task_id},
timeout=30,
)
result_response.raise_for_status()
result = result_response.json()
if result.get("errorId"):
raise RuntimeError(
f"getTaskResult failed: {result.get('errorCode')} - "
f"{result.get('errorDescription')}"
)
if result.get("status") == "ready":
return result["solution"]["token"]
if result.get("status") == "failed":
raise RuntimeError("BotDeflector task failed")
raise TimeoutError(f"BotDeflector task {task_id} exceeded {timeout}s")
token = solve_botdeflector(
website_url="https://queue.example.com/waitingroom/",
domain="challenge.example.net",
flow_token="FLOW_TOKEN_FROM_PAGE",
)
print(token)
Để biết thêm chi tiết về biến môi trường, xử lý yêu cầu và cấu trúc khách hàng tái sử dụng, xem hướng dẫn tích hợp API CAPTCHA bằng Python.
Sử dụng VisionEngine chỉ khi thử thách hiển thị các tài nguyên hình ảnh cần thiết cho mô-đun nhận dạng BotDeflector. Phương pháp này chấp nhận hình ảnh nền image và imageBackground, sau đó trả về tọa độ nhấp chuột trong phản hồi createTask ban đầu.
Yêu cầu sử dụng type: "VisionEngine" và module: "botdeflector":
curl --request POST 'https://api.capsolver.com/createTask' \
--header 'Content-Type: application/json' \
--data '{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "VisionEngine",
"module": "botdeflector",
"image": "BASE64_FOREGROUND_IMAGE",
"imageBackground": "BASE64_BACKGROUND_IMAGE",
"websiteURL": "https://queue.example.com/waitingroom/"
}
}'
Theo tài liệu VisionEngine hiện tại, nhiệm vụ này trả về dữ liệu nhận dạng trực tiếp; nó không yêu cầu yêu cầu getTaskResult riêng biệt. Một phản hồi thành công có hình dạng sau:
{
"errorId": 0,
"errorCode": "",
"errorDescription": "",
"status": "ready",
"solution": {
"points": [[123, 88], [244, 84], [174, 70]]
},
"taskId": "TASK_ID"
}
Áp dụng các tọa độ trả về cho thử thách trực quan trong cùng không gian tọa độ với hình ảnh đã gửi. Kích thước, cắt, hoặc sử dụng màn hình chụp có kích thước khác có thể di chuyển vị trí mục tiêu và gây ra tương tác sai lệch.
VisionEngine xử lý bước nhận dạng; nó không thay thế quản lý trạng thái trình duyệt xung quanh. Nếu trang mong đợi trao đổi token tiếp theo, tiếp tục trao đổi đó bên trong cùng phiên được ủy quyền.
Xác minh rằng flowToken là hiện tại và thuộc về cùng phiên trang. Cũng kiểm tra xem websiteURL và domain có được thu thập độc lập thay vì được tạo từ một tên miền. Sử dụng kiểm tra có thời gian chờ và dừng khi có lỗi API thay vì lặp vô hạn.
Token bị từ chối thường cho thấy trạng thái trang đã thay đổi sau khi thu thập đầu vào thử thách. Giữ ổn định cookie, ngữ cảnh trình duyệt, URL và trạng thái thử thách cho đến khi kết quả được áp dụng. Nếu thử thách được làm mới, thu thập flowToken mới và tạo nhiệm vụ mới.
Gửi hình ảnh thử thách gốc mà không thay đổi kích thước, và áp dụng tọa độ vào cùng kích thước. Kiểm tra xem việc tự động hóa trình duyệt có gây ra tỷ lệ pixel thiết bị, thay đổi kích thước CSS hoặc màn hình chụp bị cắt không.
So sánh phiên bản trình duyệt, cài đặt khung hình, thời gian, cookie và khả năng truy cập bí mật giữa môi trường cục bộ và CI. Đối với danh sách kiểm tra rộng hơn, xem xử lý CAPTCHA trong kiểm thử tự động hóa.
Sử dụng tự động hóa Queue-it và BotDeflector chỉ cho các hệ thống bạn sở hữu, môi trường kiểm tra bạn vận hành hoặc quy trình mà chủ trang web đã cấp phép rõ ràng. Một API giải CAPTCHA không cấp quyền truy cập hoặc thay thế điều khoản, quy tắc hàng đợi, giới hạn tốc độ hoặc yêu cầu xác thực của trang.
Giới hạn khối lượng kiểm thử, tránh các sự kiện công cộng có nhu cầu cao trừ khi chúng là một phần của kiểm tra được phê duyệt, và chỉ ghi lại dữ liệu chẩn đoán tối thiểu. Khóa API, cookie, giá trị flowToken và token trả về nên được coi là bí mật và loại bỏ khỏi màn hình chụp, phân tích và nhật ký dài hạn.
Xử lý CAPTCHA của Queue-it hiện nay yêu cầu tích hợp có nhận thức về BotDeflector. Sử dụng AntiBotdeflectorTaskProxyLess cho luồng token phiên và đọc kết quả từ solution.token; sử dụng VisionEngine với mô-đun botdeflector chỉ khi thử thách cung cấp hình ảnh nền và hình ảnh trước cần thiết cho nhận dạng tọa độ.
Quy tắc triển khai chính là duy trì ngữ cảnh trình duyệt ban đầu từ việc thu thập thử thách đến việc nộp kết quả. Đối với kiểm tra Queue-it được ủy quyền, CapSolver cung cấp cả hai con đường BotDeflector được tài liệu hóa thông qua cùng một API nhiệm vụ.
Câu hỏi: Loại nhiệm vụ nào nên sử dụng cho chế độ token BotDeflector Queue-it?
Sử dụng AntiBotdeflectorTaskProxyLess khi bạn có websiteURL, domain và flowToken hiện tại. Kiểm tra getTaskResult và đọc giá trị hoàn thành từ solution.token.
Câu hỏi: Chế độ token BotDeflector Queue-it có yêu cầu hình ảnh CAPTCHA không?
Không. Nhiệm vụ chế độ token sử dụng URL trang, tên miền BotDeflector và flowToken. Nếu thử thách thay vào đó hiển thị hình ảnh nền và hình ảnh trước cho nhận dạng trực quan, sử dụng phương pháp VisionEngine riêng biệt.
Câu hỏi: Khi nào nên sử dụng mô-đun botdeflector của VisionEngine?
Sử dụng VisionEngine với module: "botdeflector" cho bước nhận dạng trực quan cung cấp image và imageBackground. API trả về solution.points trực tiếp trong phản hồi createTask.
Câu hỏi: Tại sao tên miền BotDeflector có thể khác với URL trang Queue-it?
BotDeflector định nghĩa websiteURL và domain là các trường nhiệm vụ riêng biệt, vì vậy dịch vụ thử thách có thể sử dụng tên miền khác với trang Queue-it hiển thị. Thu thập cả hai giá trị từ tích hợp đang hoạt động.
Câu hỏi: Tôi có thể tái sử dụng token BotDeflector đã trả về trong phiên trình duyệt khác không?
Không nên giả định việc tái sử dụng. Áp dụng token vào cùng luồng trình duyệt được ủy quyền đã tạo ra các đầu vào thử thách; nếu trang hoặc thử thách được làm mới, hãy thu thập các đầu vào mới và tạo một nhiệm vụ mới.
Câu hỏi: Việc xử lý CAPTCHA Queue-it tự động có được phép không?
Điều này chỉ phù hợp khi bạn sở hữu hệ thống hoặc có sự ủy quyền rõ ràng để kiểm thử hoặc tự động hóa nó. Tôn trọng các điều khoản của trang web, kiểm soát truy cập, chính sách hàng đợi, giới hạn tốc độ và luật pháp có liên quan.

Anh Tuan
Data Science Expert
Turning task outcomes into actionable insights.
GIỚI THIỆU TÁC GIẢ
Giải CAPTCHA hình ảnh trong Node.js với yêu cầu ImageToTextTask được tài liệu hóa, mã hóa Base64 cục bộ, kết quả văn bản trực tiếp và một khách hàng được kiểm thử nhỏ.

So sánh ImageToTextTask và VisionEngine thông qua đầu vào CAPTCHA, đầu ra nhận dạng, yêu cầu mô đun, và kiểm tra ứng dụng trước khi chọn nhiệm vụ giải quyết.
