Cách giải reCaptcha v2 bằng Node.JS

Nikolai Smirnov
Software Development Lead
17-Dec-2025

TL;DR
Hướng dẫn này giải thích cách giải reCAPTCHA v2 bằng Node.js với API của CapSolver. Hướng dẫn bao gồm cả triển khai không dùng proxy và dùng proxy, các bước cài đặt từng bước, và các ví dụ mã nguồn Node.js có thể sử dụng ngay. Bằng cách tuân theo hướng dẫn này, các nhà phát triển có thể tích hợp xử lý reCAPTCHA v2 vào quy trình tự động hóa hoặc thu thập dữ liệu một cách hiệu quả và đáng tin cậy.
Giới thiệu
reCAPTCHA v2 vẫn là cơ chế xác minh con người được triển khai phổ biến nhất trên web. Đối với các nhà phát triển làm việc với quy trình tự động hóa, trích xuất dữ liệu hoặc tự động hóa trình duyệt quy mô lớn, việc xử lý reCAPTCHA v2 một cách hiệu quả là một thách thức kỹ thuật lặp lại.
Trong bài viết này, chúng tôi hướng dẫn một triển khai thực tế bằng Node.js để giải reCAPTCHA v2 sử dụng API của CapSolver. Bạn sẽ học cách cấu hình môi trường, cài đặt các phụ thuộc cần thiết và triển khai các giải pháp cả với và không dùng proxy. Các ví dụ được cung cấp được thiết kế theo hướng sản xuất và dễ dàng thích ứng với các trường hợp sử dụng thực tế.
⚙️ Yêu cầu trước
- Proxy (Tùy chọn)
- Node.JS đã cài đặt
- Khóa API của Capsolver
🤖 Bước 1: Cài đặt các gói cần thiết
Thực hiện các lệnh sau để cài đặt các gói cần thiết:
python
npm install axios
👨💻 Mã Node.JS để giải reCaptcha v2 không dùng proxy
Dưới đây là một đoạn mã mẫu bằng Node.JS để thực hiện nhiệm vụ:
js
const axios = require('axios');
const PAGE_URL = ""; // Thay thế bằng trang web của bạn
const SITE_KEY = ""; // Thay thế bằng trang web
const CLIENT_KEY = ""; // Thay thế bằng khóa API CAPSOLVER của bạn
async function createTask(payload) {
try {
const res = await axios.post('https://api.capsolver.com/createTask', {
clientKey: CLIENT_KEY,
task: payload
});
return res.data;
} catch (error) {
console.error(error);
}
}
async function getTaskResult(taskId) {
try {
success = false;
while(success == false){
await sleep(1000);
console.log("Đang lấy kết quả nhiệm vụ cho ID nhiệm vụ: " + taskId);
const res = await axios.post('https://api.capsolver.com/getTaskResult', {
clientKey: CLIENT_KEY,
taskId: taskId
});
if( res.data.status == "ready") {
success = true;
console.log(res.data)
return res.data;
}
}
} catch (error) {
console.error(error);
return null;
}
}
async function solveReCaptcha(pageURL, sitekey) {
const taskPayload = {
type: "ReCaptchaV2TaskProxyless",
websiteURL: pageURL,
websiteKey: sitekey,
};
const taskData = await createTask(taskPayload);
return await getTaskResult(taskData.taskId);
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function main() {
try {
const response = await solveReCaptcha(PAGE_URL, SITE_KEY );
console.log(`Nhận được token: ${response.solution.gReCaptcharesponse}`);
}
catch (error) {
console.error(`Lỗi: ${error}`);
}
}
main();
👨💻 Mã Node.JS để giải reCaptcha v2 dùng proxy
Dưới đây là một đoạn mã mẫu bằng Node.JS để thực hiện nhiệm vụ:
js
const axios = require('axios');
const PAGE_URL = ""; // Thay thế bằng trang web của bạn
const SITE_KEY = ""; // Thay thế bằng trang web
const CLIENT_KEY = ""; // Thay thế bằng khóa API CAPSOLVER của bạn
const PROXY = "https://username:password@host:port";
async function createTask(payload) {
try {
const res = await axios.post('https://api.capsolver.com/createTask', {
clientKey: CLIENT_KEY,
task: payload
});
return res.data;
} catch (error) {
console.error(error);
}
}
async function getTaskResult(taskId) {
try {
success = false;
while(success == false){
await sleep(1000);
console.log("Đang lấy kết quả nhiệm vụ cho ID nhiệm vụ: " + taskId);
const res = await axios.post('https://api.capsolver.com/getTaskResult', {
clientKey: CLIENT_KEY,
taskId: taskId
});
if( res.data.status == "ready") {
success = true;
console.log(res.data)
return res.data;
}
}
} catch (error) {
console.error(error);
return null;
}
}
async function solveReCaptcha(pageURL, sitekey) {
const taskPayload = {
type: "ReCaptchaV2Task",
websiteURL: pageURL,
websiteKey: sitekey,
proxy: PROXY
};
const taskData = await createTask(taskPayload);
return await getTaskResult(taskData.taskId);
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function main() {
try {
const response = await solveReCaptcha(PAGE_URL, SITE_KEY );
console.log(`Nhận được token: ${response.solution.gRecaptchaResponse}`);
}
catch (error) {
console.error(`Lỗi: ${error}`);
}
}
main();
⚠️ Thay đổi các biến này
- PROXY: Thay đổi thành proxy của bạn, chỉ khi bạn sử dụng ReCaptchaV2Task.
- CLIENT_KEY: Nhận khóa API của bạn từ Bảng điều khiển Capsolver.
- PAGE_URL: Thay thế bằng URL của trang web mà bạn muốn giải captcha
- SITE_KEY: Thay thế bằng khóa trang của trang có captcha
👀 Thông tin thêm
Kết luận
Giải reCAPTCHA v2 trong Node.js không cần phải phức tạp. Bằng cách tận dụng API của CapSolver, các nhà phát triển có thể triển khai giải pháp sạch sẽ, mở rộng được và hoạt động đáng tin cậy trên các cấu hình trang web khác nhau. Dù bạn chọn cài đặt không dùng proxy để đơn giản hay phương pháp dùng proxy để kiểm soát tốt hơn, các ví dụ trong hướng dẫn này cung cấp nền tảng vững chắc cho mục đích sản xuất.
Câu hỏi thường gặp
1. Sự khác biệt giữa các nhiệm vụ reCAPTCHA v2 không dùng proxy và dùng proxy là gì?
Nhiệm vụ không dùng proxy dựa vào cơ sở hạ tầng nội bộ của CapSolver và dễ triển khai hơn, trong khi nhiệm vụ dùng proxy cho phép bạn kiểm soát danh tính IP và vị trí địa lý để đạt tỷ lệ thành công cao hơn trên các trang web nghiêm ngặt.
2. Khi nào nên sử dụng ReCaptchaV2Task thay vì ReCaptchaV2TaskProxyless?
Sử dụng ReCaptchaV2Task khi trang web đích yêu cầu tính nhất quán của IP hoặc áp dụng các hạn chế khu vực yêu cầu cấu hình proxy cụ thể.
3. Thời gian thường để nhận được token reCAPTCHA v2 là bao lâu?
Hầu hết các nhiệm vụ được hoàn thành trong vài giây. Thời gian thực tế phụ thuộc vào độ phức tạp của trang, mức độ khó của thử thách và việc có sử dụng proxy hay không.
4. Giải pháp này có thể tích hợp vào các hệ thống tự động hóa Node.js quy mô lớn không?
Có. Các hàm được cung cấp là mô-đun và có thể tích hợp vào các trình thu thập dữ liệu, quy trình tự động hóa hoặc các luồng làm việc dựa trên trình duyệt.
Tuyên bố Tuân thủ: Thông tin được cung cấp trên blog này chỉ mang tính chất tham khảo. CapSolver cam kết tuân thủ tất cả các luật và quy định hiện hành. Việc sử dụng mạng lưới CapSolver cho các hoạt động bất hợp pháp, gian lận hoặc lạm dụng là hoàn toàn bị cấm và sẽ bị điều tra. Các giải pháp giải captcha của chúng tôi nâng cao trải nghiệm người dùng trong khi đảm bảo tuân thủ 100% trong việc giúp giải quyết các khó khăn về captcha trong quá trình thu thập dữ liệu công khai. Chúng tôi khuyến khích việc sử dụng dịch vụ của chúng tôi một cách có trách nhiệm. Để biết thêm thông tin, vui lòng truy cập Điều khoản Dịch vụ và Chính sách Quyền riêng tư.
Thêm

Giải CAPTCHA không giới hạn với công cụ giải CAPTCHA tốt nhất
Học cách giải Captcha không giới hạn một cách mượt mà với giải pháp Captcha tốt nhất, một hướng dẫn chi tiết về việc thiết lập và tự động hóa các giải pháp Captcha một cách hiệu quả

Sora Fujimoto
20-Jan-2026

Giải quyết reCAPTCHA bằng C++: Hướng dẫn toàn diện
Học cách giải reCAPTCHA bằng C++ sử dụng API CapSolver. Hướng dẫn toàn diện này bao gồm cài đặt dự án của bạn, tạo nhiệm vụ và truy xuất kết quả nhiệm vụ với các ví dụ thực tế.

Emma Foster
14-Jan-2026

Cách giải reCAPTCHA với Node.js | Hướng dẫn năm 2026
Làm quen với cách dễ dàng giải quyết reCAPTCHA v2 và v3 bằng cách sử dụng Node.js và công cụ giải quyết trong hướng dẫn này. Nâng cao trò chơi tự động hóa của bạn ngay hôm nay!

Nikolai Smirnov
05-Jan-2026

Giải quyết reCAPTCHA v2 tự động: Hướng dẫn với CapSolver
Hãy cùng tìm hiểu cách bạn có thể dễ dàng tự động hóa giải pháp cho reCAPTCHA v2 bằng CapSolver.

Emma Foster
05-Jan-2026

Công Cụ Giải Recaptcha bằng Puppeteer: Hướng Dẫn Toàn Diện
chúng ta sẽ khám phá cách sử dụng Puppeteer như một trình giải reCAPTCHA và các phương pháp khác nhau có sẵn để tích hợp nó vào quy trình làm việc của bạn.

Sora Fujimoto
04-Jan-2026

Cách giải quyết các thách thức reCAPTCHA Enterprise trong việc quét web
Hướng dẫn giải quyết reCAPTCHA Enterprise trong việc quét web. Bao gồm mã Python, các bước cài đặt và lời khuyên triển khai.

Sora Fujimoto
04-Jan-2026

