
Anh Tuan
Data Science Expert
BrowserCloud là một nền tảng tự động hóa trình duyệt dựa trên đám mây, hiệu năng cao, được thiết kế cho tự động hóa web có khả năng mở rộng và phân tán. Nó cho phép các nhà phát triển chạy hàng trăm trình duyệt Chrome không có đầu song song để sử dụng trong các trường hợp như thu thập dữ liệu web, kiểm thử tự động, giám sát SEO, trích xuất dữ liệu và tạo nội dung. Với hỗ trợ tích hợp sẵn cho Puppeteer, Selenium và Playwright, BrowserCloud đơn giản hóa các quy trình tự động hóa phức tạp bằng cách cung cấp luân chuyển proxy, quản lý phiên và giám sát thời gian thực.
Tuy nhiên, CAPTCHA, các hệ thống phát hiện bot và các biện pháp chống tự động hóa nâng cao thường làm gián đoạn các tác vụ tự động hóa trình duyệt này bằng cách yêu cầu các tương tác giống như con người để xác minh tính xác thực. Những rào cản như vậy có thể chặn các tập lệnh thu thập dữ liệu, làm chậm các đường dẫn kiểm thử và làm hỏng việc gửi biểu mẫu tự động, dẫn đến lãng phí thời gian và giảm hiệu quả.
CapSolver, một dịch vụ bỏ qua phát hiện CAPTCHA và bot được hỗ trợ bởi AI, cung cấp một giải pháp đáng tin cậy. Nó phát hiện và giải quyết theo chương trình một loạt các loại CAPTCHA — bao gồm reCAPTCHA v2 / v3, Cloudflare Turnstile và các câu đố dựa trên hình ảnh — đảm bảo các quy trình tự động hóa trình duyệt không bị gián đoạn.
Trong bài viết này, chúng tôi sẽ cung cấp hướng dẫn tích hợp từng bước để kết nối CapSolver với BrowserCloud bằng Puppeteer, cùng với một ví dụ mã hoạt động đầy đủ. Bằng cách làm theo hướng dẫn này, bạn sẽ có thể bỏ qua các thách thức CAPTCHA một cách liền mạch, đánh bại các biện pháp chống bot và tối đa hóa hiệu quả của các tập lệnh tự động hóa của bạn.
BrowserCloud là một nền tảng đa năng quản lý một lưới các trình duyệt Chrome đầy đủ tính năng trên cơ sở hạ tầng hiệu năng cao, loại bỏ sự cần thiết phải xử lý các phụ thuộc trình duyệt cục bộ, rò rỉ bộ nhớ hoặc bảo trì cơ sở hạ tầng. Các tính năng chính của nó bao gồm:
BrowserCloud hỗ trợ nhiều tác vụ tự động hóa, bao gồm:
Các trường hợp sử dụng này thường gặp phải CAPTCHA, khiến việc tích hợp CapSolver trở nên cần thiết để tự động hóa không bị gián đoạn.
Các trang web triển khai CAPTCHA và các biện pháp phòng thủ chống bot để bảo vệ chống lại truy cập tự động, thư rác và các hoạt động độc hại, gây ra một thách thức đáng kể đối với các tác vụ tự động hóa như thu thập dữ liệu web. CAPTCHA yêu cầu các tương tác như đánh dấu vào hộp kiểm hoặc giải các câu đố hình ảnh, điều này có thể tạm dừng các tập lệnh BrowserCloud nếu không được giải quyết. Các loại CAPTCHA phổ biến bao gồm:
| Loại CAPTCHA | Mô tả |
|---|---|
| reCAPTCHA v2 | Yêu cầu người dùng đánh dấu vào hộp hoặc chọn hình ảnh dựa trên lời nhắc. |
| reCAPTCHA v3 | Sử dụng hệ thống điểm để đánh giá hành vi của người dùng, thường vô hình đối với người dùng. |
| Cloudflare Turnstile | Một giải pháp thay thế CAPTCHA tập trung vào quyền riêng tư giúp giảm thiểu tương tác của người dùng. |
Đối với việc thu thập dữ liệu web và các tác vụ tự động hóa khác, CAPTCHA có thể ngăn chặn quyền truy cập vào dữ liệu quan trọng, yêu cầu can thiệp thủ công làm mất mục đích của tự động hóa. Mặc dù việc luân chuyển proxy của BrowserCloud giúp giảm thiểu việc kích hoạt CAPTCHA, nhưng nó có thể không loại bỏ hoàn toàn chúng. API của CapSolver cung cấp một giải pháp đáng tin cậy bằng cách giải quyết CAPTCHA theo chương trình, cho phép các tập lệnh BrowserCloud bỏ qua các rào cản này và tiếp tục trích xuất dữ liệu hoặc thực hiện các tác vụ một cách liền mạch.
API của CapSolver có thể được tích hợp với BrowserCloud trong một tập lệnh Puppeteer / Playwright / Selenium để xử lý CAPTCHA hiệu quả. Quá trình này bao gồm:
Việc tích hợp này tận dụng cơ sở hạ tầng trình duyệt có khả năng mở rộng của BrowserCloud và khả năng giải quyết CAPTCHA do AI điều khiển của CapSolver để đảm bảo quy trình tự động hóa mạnh mẽ.
Dưới đây là một ví dụ mã đầy đủ minh họa cách tích hợp CapSolver với BrowserCloud để giải quyết reCAPTCHA v2 trên một trang demo. Mã được dựa trên tập lệnh được cung cấp, với những cải tiến nhỏ để rõ ràng và đáng tin cậy hơn.
Cài đặt các phụ thuộc cần thiết:
npm install puppeteer node-fetch@2 dotenv
Tạo tệp .env với khóa API của bạn:
BROWSER_CLOUD_TOKEN=your_browsercloud_token
CAPSOLVER_API_KEY=your_capsolver_api_key
import puppeteer from 'puppeteer';
import fetch from 'node-fetch';
import dotenv from 'dotenv';
dotenv.config();
const BROWSER_CLOUD_TOKEN = process.env.BROWSER_CLOUD_TOKEN;
const CAPSOLVER_API_KEY = process.env.CAPSOLVER_API_KEY;
async function solveCaptcha(sitekey, pageUrl) {
const createTaskRes = await fetch('https://api.capsolver.com/createTask', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clientKey: CAPSOLVER_API_KEY,
task: {
type: 'ReCaptchaV2TaskProxyless',
websiteURL: pageUrl,
websiteKey: sitekey
}
})
});
const createTask = await createTaskRes.json();
if (!createTask.taskId) throw new Error(`CapSolver: Failed to create task: ${JSON.stringify(createTask)}`);
let solution = null;
while (true) {
await new Promise(resolve => setTimeout(resolve, 2000));
const resultRes = await fetch('https://api.capsolver.com/getTaskResult', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clientKey: CAPSOLVER_API_KEY,
taskId: createTask.taskId
})
});
const result = await resultRes.json();
if (result.status === 'ready') {
solution = result.solution.gRecaptchaResponse;
break;
}
if (result.status === 'failed') throw new Error(`CapSolver: Failed to solve: ${JSON.stringify(result)}`);
}
if (!solution) throw new Error('CapSolver: Timeout waiting for solution');
return solution;
}
(async () => {
try {
const browser = await puppeteer.connect({
browserWSEndpoint: `wss://chrome-v2.browsercloud.io?token=${BROWSER_CLOUD_TOKEN}`
});
const page = await browser.newPage();
await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php', { waitUntil: 'networkidle2' });
const sitekey = await page.$eval('.g-recaptcha', el => el.getAttribute('data-sitekey'));
console.log('Sitekey:', sitekey);
const solution = await solveCaptcha(sitekey, page.url());
console.log('CAPTCHA solution:', solution);
await page.evaluate(token => {
const textarea = document.getElementById('g-recaptcha-response');
if (textarea) {
textarea.value = token;
textarea.innerHTML = token;
textarea.style.display = '';
textarea.dispatchEvent(new Event('input', { bubbles: true }));
}
}, solution);
const submitBtn = await page.$('body > main > form > fieldset > button');
if (submitBtn) {
await Promise.all([
page.waitForNavigation({ waitUntil: 'networkidle2' }),
submitBtn.click()
]);
console.log('Submit button clicked!');
} else {
console.log('Submit button not found!');
}
console.log('Page content after submission:', await page.content());
await browser.close();
} catch (error) {
console.error('Error:', error);
}
})();
| Bước | Mô tả |
|---|---|
| 1. Thiết lập môi trường | Cài đặt puppeteer, node-fetch@2 và dotenv bằng npm. Tạo tệp .env với khóa API BrowserCloud và CapSolver của bạn. |
| 2. Định nghĩa hàm solveCaptcha | Hàm này nhận khóa trang web và URL trang, tạo tác vụ CapSolver cho reCAPTCHA v2, kiểm tra giải pháp (tối đa 30 lần thử với khoảng thời gian 2 giây) và trả về mã thông báo giải pháp. |
| 3. Kết nối với BrowserCloud | Sử dụng puppeteer.connect với điểm cuối WebSocket của BrowserCloud, bao gồm mã thông báo API của bạn. Lưu ý rằng createIncognitoBrowserContext không được hỗ trợ ở chế độ từ xa của BrowserCloud, vì vậy hãy sử dụng browser.newPage() trực tiếp. |
| 4. Điều hướng đến trang đích | Mở một trang mới và điều hướng đến trang demo với reCAPTCHA v2, chờ mạng nhàn rỗi. |
| 5. Trích xuất khóa trang web | Sử dụng page.$eval để truy xuất thuộc tính data-sitekey từ phần tử .g-recaptcha. |
| 6. Giải quyết CAPTCHA | Gọi solveCaptcha với khóa trang web và URL trang để lấy mã thông báo giải pháp từ CapSolver. |
| 7. Tiêm giải pháp | Tiêm mã thông báo giải pháp vào vùng văn bản g-recaptcha-response và gửi sự kiện đầu vào để mô phỏng tương tác của người dùng. |
| 8. Gửi biểu mẫu | Định vị nút gửi, nhấp vào nó và chờ điều hướng để đảm bảo việc gửi biểu mẫu được xử lý. |
| 9. Xác minh kết quả | In nội dung trang để xác nhận việc gửi thành công. |
| 10. Đóng trình duyệt | Đóng kết nối trình duyệt để giải phóng tài nguyên. |
Lưu ý: Mã gốc đã sử dụng page.waitForTimeout(3000) sau khi nhấp vào nút gửi, điều này có thể không chờ điều hướng một cách đáng tin cậy. Ví dụ này cải thiện nó bằng cách sử dụng page.waitForNavigation() để đảm bảo trang đã tải đầy đủ sau khi gửi.
Phần này mô tả việc thực thi tập lệnh trên một trang demo với hộp kiểm reCAPTCHA v2:
g-recaptcha-response, mô phỏng việc xác minh CAPTCHA thành công.Trong thực tế, bạn sẽ thấy trình duyệt điều hướng đến trang demo, hộp kiểm reCAPTCHA được đánh dấu tự động và biểu mẫu được gửi thành công, tất cả đều không cần can thiệp thủ công.
| Câu hỏi | Câu trả lời |
|---|---|
| CapSolver hỗ trợ những loại CAPTCHA nào? | CapSolver hỗ trợ reCAPTCHA v2 / v3, Cloudflare Turnstile và hơn thế nữa. Xem tài liệu CapSolver để biết chi tiết. |
| Làm thế nào để tôi có được khóa API cho BrowserCloud và CapSolver? | Đăng ký tại BrowserCloud và CapSolver để lấy khóa API của bạn sau khi đăng ký. |
| Tôi có thể sử dụng tích hợp này với Selenium hoặc Playwright không? | Có, bạn có thể điều chỉnh tích hợp cho Selenium hoặc Playwright bằng cách sửa đổi logic điều khiển trình duyệt và thao tác trang cho phù hợp với API của các khung đó. |
| Điều gì sẽ xảy ra nếu CapSolver không giải quyết được CAPTCHA? | Thực hiện logic thử lại trong tập lệnh của bạn hoặc kiểm tra tài khoản CapSolver của bạn về các sự cố như số dư không đủ. Ghi lại lỗi để gỡ lỗi. |
| Tôi có cần proxy với CapSolver không? | Ví dụ sử dụng ReCaptchaV2TaskProxyless, nhưng proxy có thể cần thiết cho CAPTCHA cụ thể theo khu vực. Việc luân chuyển proxy tích hợp sẵn của BrowserCloud có thể bổ sung điều này. |
Việc tích hợp CapSolver với BrowserCloud tạo ra sự kết hợp mạnh mẽ để tự động hóa các tác vụ web gặp phải CAPTCHA. Việc giải quyết CAPTCHA do AI điều khiển của CapSolver đảm bảo rằng các tập lệnh Puppeteer của bạn trên BrowserCloud có thể bỏ qua các biện pháp chống bot, trong khi cơ sở hạ tầng có thể mở rộng và hỗ trợ proxy của BrowserCloud tăng cường độ tin cậy của tự động hóa. Điều này đặc biệt có giá trị đối với việc thu thập dữ liệu web, kiểm thử tự động và tạo nội dung, nơi CAPTCHA là những trở ngại phổ biến.
Để bắt đầu, hãy đăng ký BrowserCloud và CapSolver, lấy khóa API của bạn và thực hiện ví dụ mã được cung cấp. Khám phá tài liệu CapSolver và tài liệu BrowserCloud để biết các tính năng nâng cao và các loại tác vụ bổ sung. Hãy thử tích hợp này trong dự án tự động hóa tiếp theo của bạn và trải nghiệm quy trình làm việc liền mạch, không bị gián đoạn!
Tiền thưởng cho người dùng Browser: Sử dụng mã khuyến mãi BROWSERCLOUD khi nạp tiền vào tài khoản CapSolver của bạn và nhận được khoản tín dụng thưởng 6% độc quyền — không giới hạn, không hết hạn.
CapSolver: Tương thích với bất kỳ client nào hỗ trợ HTTP, bao gồm cả tiện ích mở rộng trình duyệt cho Chrome và Firefox.
Hướng dẫn Captcha cho quy trình dữ liệu được phê duyệt: học về các loại thách thức, xử lý API, tính nhất quán của proxy, lần thử lại và sử dụng có trách nhiệm.

API giải CAPTCHA nhanh chóng dành cho tự động hóa: so sánh quy trình token, các thách thức được hỗ trợ, kiểm tra độ trễ và tích hợp CapSolver có trách nhiệm.
