Captcha
Đọc một thử thách, thực hiện nó, và canh chừng thử thách để xác nhận đáp án được chấp nhận.
Mục đích
Đưa một flow vượt qua cổng thử thách trong một node. Nó đọc thử thách, thực hiện đáp án (gõ, kéo, xoay, hay chạm), rồi xác minh trạng thái thử thách trước khi quyết nó thật sự được giải.
Solved và Unsolved là port thật thay vì cờ output, vì rẽ theo "ta có qua không" chính là điểm của việc đặt node này.
Khi nào dùng
- Một cổng thử thách chặn flow bạn kiểm soát đầu-cuối.
- Bạn cần flow tiếp tục tự động qua một bước xác minh thường quy.
Khi nào không dùng
- Đọc chữ tùy ý — dùng Read Text.
- Tìm ảnh — dùng Find Image.
- Nơi có thể nhắc người vận hành. Con ngư ời đáng tin hơn mọi bộ giải tự động.
Chỉ dùng node này với hệ thống bạn sở hữu hoặc được phép rõ ràng tự động hóa. Cổng thử thách tồn tại để thực thi một chính sách; vượt cổng bạn không có quyền vượt có thể vi phạm điều khoản dịch vụ.
Điều kiện
Vùng thử thách và kiểu của nó là mức tối thiểu không thể giản: thiếu chúng thì không có gì để đọc và không cách biết đọc thế nào.
Bảy kiểu thử thách
| Kiểu | Thử thách | Hình dạng đáp án |
|---|---|---|
text | Ký tự méo cần đọc và gõ | Chữ |
math | Biểu thức số học cần đọc và tính | Số |
slider | Mảnh cần kéo ngang vào khe | Độ lệch kéo |
puzzle | Mảnh ghép cần kéo vào chỗ khuyết | Độ lệch kéo |
rotate | Ảnh cần xoay thẳng | Góc |
clickOrder | Vài đích cần chạm theo thứ tự nêu | Điểm có thứ tự |
imageSelect | Lưới ảnh; chạm những ảnh khớp lời nhắc | Điểm |
slider và puzzle sinh cùng hình dạng đáp án nhưng giữ kiểu riêng để editor gọi đúng thứ bạn đang nhìn. clickOrder và imageSelect cũng vậy: click-order thứ tự mang nghĩa, image-select thì không.
Hai chế độ
| Chế độ | Hành vi |
|---|---|
solveAndApply | Mặc định. Đọc rồi gõ/kéo để flow qua cổng |
solveOnly | Nâng cao: công bố đáp án ra biến, không đụng input |
Cách nó chạy
Node không rẽ Solved vì nó đã gõ gì đó. Nó canh thử thách sau đó và chỉ rẽ Solved khi trạng thái thử thách cho thấy đáp án được chấp nhận — biến mất, hay đã xác nhận.
Thử thách bị từ chối thường được thay bằng cái mới, nên lần thử kế là câu đố khác, và điều chỉnh học từ lần từ chối được áp ở vòng sau.
Thiết lập
| Thiết lập | Kiểu | Khoảng | Mặc định | Ghi chú |
|---|---|---|---|---|
| Captcha type | lựa chọn | bảy kiểu trên | — | Bắt buộc |
| Region | hình chữ nhật | phần trăm màn | — | Bắt buộc. Nơi thử thách được vẽ |
| Mode | lựa chọn | solveAndApply, solveOnly | solveAndApply | |
| Answer field region | hình chữ nhật | — | ô đang focus | Nơi gõ đáp án |
| Submit region | hình chữ nhật | — | — | Chạm sau đáp án. Vắng = không gửi |
| Handle region | hình chữ nhật | — | mép trái | Slider/puzzle: tay nắm kéo bắt đầu ở đâu. Rotate: nút xoay |
| Prompt region | hình chữ nhật | — | — | Image-select: nơi thử thách vẽ hình nhắc |
| Target order | danh sách | ≤ 8 mục | — | Click-order: tên đích theo thứ tự chạm. Image-select: chủ đề nhắc |
| Grid columns | integer | 1–8 | 3 | Chiều rộng lưới image-select |
| Grid rows | integer | 1–8 | 3 | Chiều cao lưới image-select |
| Select count | integer | 1–16 | 3 | Chọn mấy ô |
| Max attempts | integer | 1–10 | 3 | Đọc lại và thử lại trong một lần thực thi |
| Timeout | integer | 1–120000 ms | 60000 | Ngân sách cả node qua mọi lần thử |
| Verification delay | integer | 0–30000 ms | 1500 | Chờ sau đáp án trước khi nhìn |
| Verification timeout | integer | 500–30000 ms | 4000 | Cận trên thời gian poll chờ trạng thái dứt khoát |
| Save results to variables | danh sách | ≤ 8 | — | Gán trường output vào biến |
Verification delay là núm quan trọng nhất
Nhìn quá sớm là đọc hiệu ứng, không phải kết cục. Mặc định 1500 ms nằm trong dải phủ thời gian render của các cổng thật — site nhanh hạ được, site chậm nên nâng.
Node báo Unsolved trên thử thách bạn thấy rõ đã được chấp nhận? Gần như luôn là thiết lập này cần đổi.
Prompt region cho image-select
Khi lưới chọn-ảnh vẽ lời nhắc dạng hình thay vì chữ, prompt region là thứ làm thử thách trả lời được. Thiếu nó, bộ giải bị hỏi "những ô nào đi cùng nhau" — một câu hỏi khác và khó hơn nhiều.
Max attempts không phải node retry
maxAttempts đọc lại và thử lại trong một lần thực thi, vì thử thách thường render lại sau đáp án sai. Khác hẳn retry policy cấp node, thứ phủ lỗi vận hành chứ không phải đáp án sai.
Port
| Port | Đi vào khi | Bắt buộc |
|---|---|---|
| Solved | Trạng thái thử thách xác nhận đáp án được chấp nhận | Có |
| Unsolved | Hết lượt mà không được chấp nhận | Không — khoan dung; trống thì kết thúc flow nhẹ nhàng |
| Failure | Vận hành: không khung, input bị từ chối, engine thiếu | Không |
| Cancelled | Lần chạy dừng | Không — không bao giờ được đi |
| Fatal | Cấu hình sai | Không — không bao giờ được đi |
Failure khác Unsolved có chủ đích: một cái nghĩa máy móc hỏng, cái kia nghĩa đáp án sai.
Ví dụ cơ bản
Thử thách chữ có nút gửi:
- Captcha type: text
- Region: ảnh ký tự méo
- Answer field region: ô nhập
- Submit region: nút Verify
Ví dụ thực tế — cổng có đường bỏ cuộc sạch
Unsolved và Failure về hai kết thúc khác nhau, vì chúng là hai vấn đề khác: một đáp án sai, một máy móc hỏng.
Ví dụ nâng cao — solveOnly
Dùng solveOnly khi flow cần tự thực hiện đáp án — ví dụ khi đáp án phải kết hợp input khác, hay nút gửi cần một cử chỉ riêng:
- Mode: solveOnly
- Save results to variables: gán output đáp án
- Rồi dùng Input Text và Click tường minh
Best practices
- Đặt verification delay khớp site. Đây là thiết lập tác động lớn nhất.
- Nối Unsolved và Failure riêng. Chúng cần xử lý khác nhau.
- Cho vùng thử thách một hình chữ nhật sát, ổn định.
- Đặt submit region để cả cổng là một node.
- Với image-select, luôn đặt prompt region khi lời nhắc là hình.
- Giữ max attempts quanh 3. Nhiều hơn hiếm khi giúp, và mỗi lần thử tốn một vòng xác minh đủ.
- Luôn có đường bỏ cuộc sạch. Flow lặp mãi trên một thử thách tệ hơn flow biết dừng.
Ghi chú hiệu năng
- Đây là node đắt nhất sản phẩm. Mỗi lần thử là một đọc, một chuỗi input, một trễ, và một poll xác minh.
- Xấu nhất ≈
maxAttempts × (đọc + thực hiện + trễ xác minh + timeout xác minh), giới hạn bởi node timeout (mặc định 60000 ms). - Trễ xác minh trả mọi lần thử bất kể kết cục; timeout xác minh chỉ cắn khi vùng không bao giờ ổn định.
- Đặt node sau một phép kiểm Find Image để nó chỉ chạy khi thử thách thật sự hiện diện.
Ghi chú bộ nhớ
- Mỗi lần thử chụp và xử lý ảnh thử thách; working set theo cỡ vùng thử thách.
- Giải lưới image-select xử lý từng ô, nên lưới lớn tốn hơn 3×3.
- Không gì bền giữa các lần chạy.
Lỗi thường gặp
| Lỗi | Hậu quả | Cách sửa |
|---|---|---|
| Verification delay quá ngắn | Đọc hiệu ứng → Unsolved giả | Nâng nó |
| Coi Unsolved và Failure như nhau | Che engine hỏng thành đáp án sai | Nối riêng |
| Vùng dính khung xung quanh | Đọc kém | Thu vùng |
| Không prompt region trên lưới nhắc-hình | Bộ giải không biết chọn gì | Đặt nó |
| Max attempts 10 | Lần chạy dài, tốn kém | Quanh 3 |
| Chạy vô điều kiện | Trả chi phí mỗi lần chạy | Gác sau Find Image |
| Bỏ trống Solved | Port bắt buộc | Nối nó |
Khắc phục sự cố
Unsolved trên thử thách rõ ràng đã thành. Nâng verification delay — node nhìn trước khi cổng cập nhật.
Luôn rẽ Failure. Vận hành, không phải đáp án: không chụp được khung, input bị từ chối, hay engine thiếu. Kiểm kết nối thiết bị và input mode.
Slider kéo sai chỗ. Đặt handle region để cú kéo bắt đầu đúng nơi tay nắm ở.
Image-select chọn sai ô. Kiểm grid rows/columns và select count, và đặt prompt region nếu lời nhắc là hình.
Node tốn rất lâu.
maxAttempts × vòng xác minh. Hạ số lần thử, hoặc hạ timeout xác minh.
FAQ
Bao nhiêu lần thử trong một lần thực thi?
Tối đa maxAttempts, mặc định 3.
Lưới mặc định? 3×3, chọn 3 — khớp mọi thử thách nine-image thường thấy.
Node có tự gõ đáp án không?
Chế độ solveAndApply thì có. solveOnly chỉ công bố đáp án.
If sau có kiểm kết cục captcha được không? Được — If chế độ Node outcome có Captcha solved / Captcha unsolved.
Ngân sách cả node? Mặc định 60000 ms qua mọi lần thử.
Node liên quan
- Find Image — phát hiện thử thách hiện diện
- Input Text — gõ ở chế độ solveOnly
- Click — gửi ở chế độ solveOnly
- If — rẽ theo kết cục captcha về sau
Trang liên quan
- Retry và thất bại — node retry so với lần thử trong-node