Trong bài viết này, chúng tôi đã cố gắng trả lời tất cả những câu hỏi quan trọng. Bước đầu tiên để bắt đầu giải quyết vấn đề là xác định hệ thống bảo mật nào đang được sử dụng. Để làm điều đó, bạn có thể tham khảo danh sách các captcha và hệ thống chống bot phổ biến, trong đó có các ví dụ minh họa và những dấu hiệu chính giúp bạn nhanh chóng nhận biết mình đang làm việc với giải pháp nào.
Nếu bạn phát hiện trang web của mình đang sử dụng ImageToText, bước tiếp theo là tìm hiểu chi tiết hơn về các đặc tính và cách hoạt động của nó. Ngay trong bài viết này, bạn cũng có thể xem hướng dẫn tích hợp hệ thống ImageToText để hiểu đầy đủ cách nó vận hành trên trang web của bạn. Điều đó giúp bạn không chỉ nắm rõ lớp bảo vệ hiện tại mà còn lập kế hoạch bảo trì một cách hợp lý.
Làm việc với CapMonster Cloud qua API thường gồm các bước:
type - ImageToTextTask
body - Nội dung file CAPTCHA, mã hóa base64. Đảm bảo giá trị được gửi trên một dòng duy nhất, không ngắt dòng;
capMonsterModule (tùy chọn) - Tên module, ví dụ “yandex”. Cách thay thế để truyền tên module và danh sách tất cả các module có sẵn có thể xem tại đây;
Bạn cũng có thể đặt các tham số tùy chọn khác:
recognizingThreshold - Ngưỡng nhận dạng CAPTCHA, giá trị từ 0 đến 100;
case - Có phân biệt chữ hoa/chữ thường hay không. Giá trị: true, false;
numeric - 1 — nếu CAPTCHA chỉ gồm số. Giá trị: 0, 1;
math - false — mặc định không xác định;
true — CAPTCHA yêu cầu phép toán (ví dụ 2 + 6 trả về 8).
Quan trọng: không dùng math: true cho module captcha_math.
https://api.capmonster.cloud/createTask{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId":0,
"status":"ready",
"solution": {
"text":"answer"
}
}
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { CapMonsterCloudClientFactory, ClientOptions, ImageToTextRequest, CapMonsterModules } from '@zennolab_com/capmonstercloud-client';
import { chromium } from 'playwright';
const API_KEY = "YOUR_API_KEY"; // Nhập API key CapMonster Cloud của bạn
async function solveImageToTextAndFillField() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// Kiểm tra số dư nếu cần
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);
// 1. Khởi chạy Playwright và mở trang có biểu mẫu
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
await page.goto("https://example.com/form"); // 2. Lấy URL CAPTCHA từ trang (ví dụ qua selector <img>)
// 2. Lấy URL CAPTCHA từ trang (ví dụ qua selector <img>)
const captchaUrl = await page.getAttribute("#captcha-img", "src");
// 3. Tải hình ảnh và chuyển sang Base64
const response = await fetch(captchaUrl);
const imageBuffer = await response.arrayBuffer();
const imageBase64 = Buffer.from(imageBuffer).toString('base64');
// 4. Tạo yêu cầu giải ImageToText
const imageToTextRequest = new ImageToTextRequest({
body: imageBase64,
CapMonsterModule: CapMonsterModules.YandexWave, // hoặc module khác
Case: true,
numeric: 0,
recognizingThreshold: 65,
math: false
});
// 5. Nhận kết quả CAPTCHA
const result = await cmcClient.Solve(imageToTextRequest);
console.log("Captcha solution:", result.solution.text);
// 6. Chèn kết quả vào trường form và gửi
await page.fill("#captcha-input", result.solution.text); // Thay bằng selector của bạn
await page.click("#submit-button"); // Thay bằng selector nút của bạn
await page.waitForLoadState("networkidle");
console.log("Form đã gửi với CAPTCHA");
// 7. Đóng trình duyệt
await browser.close();
}
solveImageToTextAndFillField().catch(console.error);
Bước 1. Chọn phương pháp
Trước tiên xác định cách bạn sẽ sử dụng CAPTCHA:
Phương án 1 — nhà cung cấp bên ngoài
Phù hợp nếu cần triển khai nhanh và hỗ trợ tối thiểu.
Ưu điểm:
Nhược điểm:
Phương án 2 — CAPTCHA văn bản tùy chỉnh
Phù hợp nếu muốn kiểm soát hoàn toàn và tích hợp riêng.
Ưu điểm:
Nhược điểm:
Bước 2. Thực hiện tạo CAPTCHA
Với nhà cung cấp
Với CAPTCHA tùy chỉnh
Bước 3. Hiển thị CAPTCHA cho người dùng
Quan trọng: Mỗi lần tải phải tạo mã mới.
Bước 4. Gửi dữ liệu lên server
Khi gửi biểu mẫu, gửi:
Với CAPTCHA tùy chỉnh, mã chỉ lưu trên server, không lưu trên client.
Bước 5. Kiểm tra CAPTCHA trên server
Nhà cung cấp
CAPTCHA tùy chỉnh
Bước 6. Ra quyết định
Bước 7. Tăng cường bảo vệ (khuyến nghị)
Ngay cả với CAPTCHA văn bản, nên thêm:
Đảm bảo:
Nếu bạn nhận được trang web đã có CAPTCHA hoặc hệ thống bảo vệ khác mà không có mã — đừng lo! Xác định công nghệ đang dùng khá dễ dàng. Để kiểm tra hoạt động, có thể dùng CapMonster Cloud trong môi trường test riêng để đảm bảo xử lý token và logic xác minh hoạt động đúng.
Với CAPTCHA hình ảnh — chỉ cần xác định hệ thống, nghiên cứu hành vi và đảm bảo bảo vệ hoạt động chính xác. Bài viết này hướng dẫn nhận dạng CAPTCHA hình ảnh (ComplexImage) và cách tích hợp hoặc tái cấu hình để bảo vệ hoạt động an toàn và kiểm soát.