Với sự phát triển không ngừng của công nghệ bảo mật internet, Cloudflare đã giới thiệu cơ chế xác minh Turnstile. Đây là một phương pháp xác minh không gây khó chịu, được thiết kế để mang lại trải nghiệm duyệt web liền mạch cho người dùng đồng thời chặn hiệu quả lưu lượng truy cập độc hại. Tuy nhiên, đối với các nhà phát triển dựa vào các công cụ tự động hóa và công nghệ thu thập dữ liệu web, việc giới thiệu Turnstile chắc chắn đã làm tăng độ khó trong việc bỏ qua các xác minh như vậy.
May mắn thay, bằng cách tận dụng dịch vụ đám mây Browserless của Nstbrowser và các công cụ tự động hóa như Puppeteer, các nhà phát triển có thể mô phỏng hành vi của người dùng thực để bỏ qua xác minh Cloudflare Turnstile và tiếp tục hoàn thành hiệu quả các tác vụ thu thập dữ liệu. Bài viết này sẽ trình bày chi tiết cách thức hoạt động của Cloudflare Turnstile, tác động của nó đến việc thu thập dữ liệu web và cách sử dụng dịch vụ Browserless của Nstbrowser để giải quyết thách thức này.
Cloudflare Turnstile là một loại cơ chế xác minh mới được thiết kế để thay thế CAPTCHA truyền thống. Nó phân biệt giữa người dùng và lưu lượng truy cập tự động thông qua quy trình xác minh không gây khó chịu, giảm bớt gánh nặng tương tác của người dùng.
Mặc dù cơ chế này thân thiện hơn với người dùng thông thường, nhưng nó làm tăng đáng kể độ khó cho bot và các công cụ tự động hóa trong việc bỏ qua xác minh.
Việc giới thiệu Cloudflare Turnstile đặt ra một số thách thức đối với các ứng dụng thu thập dữ liệu web:
Đối với các nhà phát triển cần thu thập một lượng lớn dữ liệu hoặc thực hiện các tác vụ tự động hóa, những thách thức này có thể làm giảm đáng kể tỷ lệ thành công và hiệu quả của nhiệm vụ.
Bằng cách sử dụng dịch vụ đám mây Browserless của Nstbrowser và các công cụ tự động hóa như Puppeteer, các nhà phát triển có thể bỏ qua cơ chế xác minh Cloudflare Turnstile một cách liền mạch. Dưới đây là các chiến lược và bước thực hiện để giải quyết những thách thức này:
Dịch vụ đám mây Browserless của Nstbrowser là một giải pháp trình duyệt không hiển thị hiệu năng cao được thiết kế đặc biệt để xử lý các cơ chế chống bot phức tạp như Turnstile.
Cài đặt Puppeteer:
npm install puppeteer-core
Đăng ký và đăng nhập vào Nstbrowser:
Truy cập trang web chính thức của Nstbrowser và tạo tài khoản.
Lấy API Key:
Khi viết logic nghiệp vụ với Puppeteer, bạn không cần phải lo lắng về việc Cloudflare Turnstile chặn các yêu cầu của mình. Dịch vụ đám mây Browserless của Nstbrowser sẽ tự động xử lý xác minh, cho phép các nhà phát triển tập trung vào logic code của họ.
Dưới đây là một ví dụ script hoàn chỉnh:
import puppeteer from 'puppeteer-core';
const API_KEY = "your api key"; // required
const HOST = 'wss://less.nstbrowser.io';
const config = {
proxy: 'your proxy',
headless: true,
};
const query = new URLSearchParams({
"x-api-key": API_KEY, // required
"config": JSON.stringify(config),
});
const browserWSEndpoint = `${HOST}/connect?${query.toString()}`;
(async () => {
const browser = await puppeteer.connect({
browserWSEndpoint: browserWSEndpoint,
defaultViewport: null,
});
try {
const page = await browser.newPage();
await page.goto('https://www.scrapingcourse.com/login/cf-turnstile', { waitUntil: 'domcontentloaded' });
// Wait for turnstile to unlock successfully
await page.waitForFunction(() => {
return window.turnstile && window.turnstile.getResponse();
});
await page.screenshot({ path: 'turnstile-solved.png' });
} catch (e) {
console.error(e);
} finally {
await browser.close();
}
})();
Bạn cũng có thể kiểm thử code trực tiếp trong tính năng Playground nằm trong menu Browserless của client Nstbrowser.
Đơn giản chỉ cần thêm code sau vào Playground, và nó sẽ tự động thiết lập kết nối Browserless:
const page = await browser.newPage();
await page.goto('https://www.scrapingcourse.com/login/cf-turnstile', {
waitUntil: 'domcontentloaded'
});
const token = await page.waitForFunction(() => {
return window.turnstile && window.turnstile.getResponse();
});
console.info("Turnstile solved token:", token);
Hướng dẫn này cung cấp một giải pháp toàn diện để bỏ qua Cloudflare Turnstile bằng cách sử dụng dịch vụ Browserless của Nstbrowser và Puppeteer, cho phép các nhà phát triển vượt qua những thách thức trong việc thu thập dữ liệu web hiện đại một cách hiệu quả.