CAPSOLVER
Blog
Cách giải quyết Cloudflare bằng Playwright trong năm 2024

Cách giải quyết Cloudflare bằng Playwright trong năm 2024

Logo of CapSolver

Anh Tuan

Data Science Expert

10-Sep-2024

Bạn biết đấy, có một sự phấn khích nhất định khi vượt qua các trở ngại, đặc biệt là khi những trở ngại đó là những người gác cổng kỹ thuật số như Cloudflare. Nếu bạn đã từng thấy mình đang nhìn chằm chằm vào một thử thách Cloudflare trong khi cố gắng tự động hóa một nhiệm vụ web, bạn đang ở trong một nhóm tốt. Tôi đã ở đó, nhiều lần. Nhưng vào năm 2024, trò chơi đã thay đổi, và các công cụ cũng vậy. Hãy để tôi hướng dẫn bạn cách tôi đã giải quyết Cloudflare bằng Playwright, và vâng, chúng ta cũng sẽ nói về người mới xuất hiện một cách lén lút, Cloudflare Turnstile.

Cloudflare là gì và tại sao nó quan trọng

Trước khi chúng ta đi sâu vào việc giải quyết các thử thách Cloudflare, hãy dành một chút thời gian để hiểu những gì chúng ta đang phải đối mặt. Cloudflare là một dịch vụ bảo mật mạnh mẽ được sử dụng bởi hàng triệu trang web để bảo vệ chống lại lưu lượng truy cập độc hại, các cuộc tấn công DDoS và nhiều mối đe dọa khác. Khi nó phát hiện hành vi bất thường - như một kịch bản tự động cố gắng truy cập một trang - nó sẽ đưa ra một thử thách, thường dưới dạng CAPTCHA, để xác minh rằng bạn là một con người chứ không phải một bot.

Nhưng đây là điểm chính: Cloudflare không chỉ đơn thuần là đưa ra CAPTCHA đơn giản nữa. Vào năm 2024, họ đã tung ra một thứ gọi là Cloudflare Turnstile, một hệ thống thử thách tinh vi và thích ứng hơn, được thiết kế để chống chịu hơn với tự động hóa. Đó là một quả hạch cứng để bẻ gãy, nhưng với cách tiếp cận phù hợp, bạn vẫn có thể chiến thắng.

Bạn đang gặp khó khăn với việc liên tục thất bại trong việc giải quyết hoàn toàn captcha khó chịu?

Khám phá giải pháp captcha tự động liền mạch với công nghệ Auto Web Unblock hỗ trợ AI của Capsolver!

Nhận Mã Khuyến mãi của bạn cho các giải pháp captcha hàng đầu; CapSolver: WEBS. Sau khi đổi, bạn sẽ nhận được thêm 5% tiền thưởng sau mỗi lần nạp tiền, Không giới hạn

Tại sao Playwright là công cụ được lựa chọn trong năm 2024

Bạn có thể tự hỏi, "Tại sao Playwright? Tại sao không gắn bó với Selenium hoặc Puppeteer cũ?" Và đó là một câu hỏi hợp lý. Câu trả lời là Playwright đã nổi lên như một thế lực mạnh mẽ cho tự động hóa web, cung cấp các tính năng khiến nó đặc biệt hiệu quả chống lại các thử thách hiện đại như những thử thách do Cloudflare đặt ra.

Playwright hỗ trợ nhiều ngữ cảnh trình duyệt, điều đó có nghĩa là bạn có thể mô phỏng nhiều người dùng hiệu quả hơn. Nó cũng cung cấp nhiều quyền kiểm soát hơn đối với hành vi của trình duyệt, giúp dễ dàng bắt chước các tương tác của người dùng thực - điều này rất quan trọng khi xử lý các biện pháp bảo mật nâng cao của Cloudflare.

Bắt đầu: Cài đặt Playwright

Điều đầu tiên là, nếu bạn chưa có, bạn cần phải cài đặt Playwright. Việc thiết lập rất đơn giản:

bash Copy
npm install playwright

Sau khi cài đặt, bạn đã sẵn sàng để bắt đầu tự động hóa các tác vụ web của mình. Nhưng nếu mục tiêu của bạn là vượt qua các thử thách Cloudflare, đặc biệt là CAPTCHA Turnstile mới của họ, chúng ta cần thực hiện thêm một vài bước. Chúng ta sẽ tận dụng CapSolver, một API của bên thứ ba được thiết kế để giải quyết CAPTCHA như Turnstile, và tích hợp nó với Playwright để truy cập các trang web được bảo vệ bởi Cloudflare.

Bước 1: Lấy siteKey

Trở ngại đầu tiên bạn phải đối mặt với CAPTCHA Turnstile là lấy siteKey từ trang web. Khóa này rất cần thiết để CapSolver xử lý CAPTCHA và cung cấp cho bạn một mã thông báo hợp lệ.

Bạn có thể trích xuất siteKey bằng cách kiểm tra nguồn của trang web hoặc, để làm cho cuộc sống dễ dàng hơn, bạn có thể sử dụng Phần mở rộng CapSolver. Nó tự động phát hiện các tham số CAPTCHA trên trang. Để biết hướng dẫn chi tiết về cách thiết lập, hãy xem bài đăng trên blog của chúng tôi:
Xác định các tham số Cloudflare Turnstile.

Sau khi có siteKey, bạn đã sẵn sàng chuyển sang bước tiếp theo.

Bước 2: Gọi API CapSolver để giải quyết CAPTCHA

Với siteKey trong tay, đã đến lúc sử dụng API của CapSolver để giải quyết CAPTCHA Turnstile và lấy mã thông báo hợp lệ. Mã thông báo này sẽ cho phép chúng ta bỏ qua thử thách và tiến hành các tác vụ thu thập dữ liệu web hoặc tự động hóa của mình.

Đây là một đoạn mã mẫu sử dụng axiosPlaywright để tương tác với CapSolver:

javascript Copy
const axios = require('axios');
const playwright = require("playwright");

const api_key = "YOUR_API_KEY"; // Khóa API CapSolver của bạn
const site_key = "0xxxxxx"; // siteKey mà bạn đã lấy
const site_url = "https://xxx.xxx.xxx/xxx"; // URL của trang web mục tiêu
const proxy = "http://xxx:[email protected]:x"; // Tùy chọn: Sử dụng proxy của bạn nếu cần

async function solveCaptcha() {
  const payload = {
    clientKey: api_key,
    task: {
      type: 'AntiTurnstileTaskProxyLess',
      websiteKey: site_key,
      websiteURL: site_url,
      metadata: {
        action: '', // Tùy chọn, chỉ định nếu cần
        type: "turnstile"
      }
    }
  };

  try {
    const res = await axios.post("https://api.capsolver.com/createTask", payload);
    const task_id = res.data.taskId;
    if (!task_id) {
      console.log("Không thể tạo tác vụ:", res.data);
      return;
    }

    console.log("Tác vụ đã được tạo, đang chờ mã thông báo...");

    while (true) {
      await new Promise(resolve => setTimeout(resolve, 1000)); // Chờ trong 1 giây trước khi kiểm tra lại
      const getResultPayload = {clientKey: api_key, taskId: task_id};
      const resp = await axios.post("https://api.capsolver.com/getTaskResult", getResultPayload);
      
      if (resp.data.status === "ready") {
        console.log("CAPTCHA đã được giải quyết, mã thông báo đã được nhận:", resp.data.solution.token);
        return resp.data.solution.token;
      }

      if (resp.data.status === "failed" || resp.data.errorId) {
        console.log("CAPTCHA giải quyết thất bại! Phản hồi:", resp.data);
        return;
      }
    }
  } catch (error) {
    console.error("Lỗi khi giải quyết CAPTCHA:", error);
  }
}

Trong mã này, chúng ta tạo một tác vụ bằng cách gửi yêu cầu POST đến API của CapSolver, chuyển siteKey và URL của trang web mà chúng ta muốn truy cập. Sau khi tác vụ được tạo, chúng ta liên tục kiểm tra trạng thái cho đến khi CapSolver trả về mã thông báo giải pháp. Mã thông báo này là thứ mà chúng ta sẽ sử dụng để chứng minh với Cloudflare rằng chúng ta là con người.

Bước 3: Tiêm mã thông báo CAPTCHA bằng Playwright

Bây giờ chúng ta đã có mã thông báo CAPTCHA, chúng ta cần tiêm nó vào phiên dưới dạng cookie bằng Playwright. Điều này sẽ cho phép chúng ta điều hướng trang web mà không bị chặn bởi sự bảo vệ của Cloudflare. Đây là cách thực hiện điều đó:

javascript Copy
const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms));

async function accessSiteWithToken(){
  let clearanceCookie;

  // Giải quyết CAPTCHA và lấy mã thông báo
  await solveCaptcha().then(token => {
    clearanceCookie = token;
  });

  const browser = await playwright.chromium.launch();
  const context = await browser.newContext();
  const page = await context.newPage();

  await wait(500);

  // Tiêm mã thông báo dưới dạng cookie
  await page.setCookie({
    name: "cf_clearance",
    value: clearanceCookie,
    url: site_url, // Đảm bảo điều này khớp với URL mục tiêu
    domain: "xx.xx.xx" // Điều chỉnh miền theo trang web thực tế
  });

  await wait(500);

  // Điều hướng đến trang web sau khi đặt cookie
  await page.goto(site_url);
  
  // Bây giờ bạn có thể thu thập dữ liệu web hoặc tương tác với trang một cách tự do
  console.log("Đã truy cập thành công trang web!");

  await browser.close();
}

// Chạy kịch bản để truy cập trang web
accessSiteWithToken().then();

Suy nghĩ cuối cùng

Cloudflare chắc chắn đã khiến việc thu thập dữ liệu web hoặc tự động hóa các tác vụ trở nên khó khăn hơn trong năm 2024, nhưng với các công cụ như Playwright và CapSolver, thử thách không phải là không thể. Khả năng mô phỏng các tương tác của người dùng thực của Playwright kết hợp với API giải quyết CAPTCHA của CapSolver cung cấp một cách mạnh mẽ để bỏ qua những rào cản này mà không cần đổ mồ hôi.

Tất nhiên, luôn luôn là một ý tưởng hay để đảm bảo bạn đang tuân thủ các thực tiễn thu thập dữ liệu web hợp pháp và đạo đức. Một số trang web có chính sách nghiêm ngặt liên quan đến truy cập tự động, vì vậy hãy đảm bảo bạn biết rõ chúng trước khi tiếp tục.

Trong thế giới tự động hóa web luôn thay đổi, điều quan trọng là phải đi trước thời đại - và với Playwright và CapSolver, bạn được trang bị để làm điều đó.

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

Cách giải Captchas khi web scraping với Scrapling và CapSolver
Cách giải Captchas khi quét web bằng Scrapling và CapSolver

Scrapling + CapSolver cho phép quét trang web tự động với việc vượt qua ReCaptcha v2/v3 và Cloudflare Turnstile.

web scraping
Logo of CapSolver

Anh Tuan

05-Dec-2025

Thay đổi User-Agent trong Selenium
Thay đổi User-Agent trong Selenium | Các bước và Nguyên tắc tốt

Thay đổi User Agent trong Selenium là bước quan trọng trong nhiều nhiệm vụ quét web. Giúp che giấu script tự động hóa thành một trình duyệt thông thường...

The other captcha
Logo of CapSolver

Lucas Mitchell

05-Dec-2025

Làm thế nào để xác định nếu `action` được yêu cầu để giải quyết Cloudflare Turnstile bằng cách sử dụng tiện ích mở rộng CapSolver
Làm thế nào để xác định xem `action` có cần thiết hay không để giải Cloudflare Turnstile bằng cách sử dụng tiện ích mở rộng CapSolver

Học cách nhận diện hành động để giải CAPTCHA hiệu quả cho Cloudflare Turnstile. Theo dõi hướng dẫn từng bước của chúng tôi về cách sử dụng các công cụ và kỹ thuật của Capsolver.

Cloudflare
Logo of CapSolver

Aloísio Vítor

05-Dec-2025

9trung gian
Khám phá sức mạnh của 9Proxy: Bài đánh giá toàn diện

Trong bài viết này, chúng tôi sẽ giới thiệu 9proxy và các dịch vụ mà họ cung cấp.

Partners
Logo of CapSolver

Nikolai Smirnov

04-Dec-2025

Thu thập dữ liệu từ web với Selenium và Python
Gỡ mã nguồn trang web với Selenium và Python | Giải Captcha khi gỡ mã nguồn trang web

Trong bài viết này, bạn sẽ làm quen với trích xuất dữ liệu từ web bằng Selenium và Python, và học cách giải mã Captcha liên quan đến quy trình để trích xuất dữ liệu hiệu quả.

web scraping
Logo of CapSolver

Aloísio Vítor

04-Dec-2025

Bảng điều khiển CapSolver 3.0!
Nâng cấp với Bảng điều khiển CapSolver 3.0!

CapSolver Dashboard 3.0 đã được nâng cấp mới với tăng cường tương tác và hàng loạt tính năng mới.

The other captcha
Logo of CapSolver

Emma Foster

04-Dec-2025