NSTProxy
Gói Proxy giảm tới75% GIẢM+15% Thưởngvới
  • Định giá
  • Tài liệu
VI
Liên hệ

© 2026 NST LABS TECH LTD. ALL RIGHTS RESERVED

Sản phẩm

Trình duyệt chống vân tay
Nstbrowser RPA
AI Agent Skills
Proxy
Vượt qua đám mây
Trình mở khóa web

Giải pháp

Trình duyệt chống vân tay dựa trên đám mây
Quản lý nhiều tài khoản
Rút trích nội dung trang web
Phát hiện chống bot

Nguồn

Định giá
Tải xuống
Thị trường RPA
Chương trình liên kết
Đối tác
Blog
Ghi chú phát hành

Ủng hộ

Liên hệ

Tài liệu

Hợp pháp

Điều kiện
Chính sách bảo mật
Chính sách cookie

Sản phẩmGiải phápNguồnỦng hộHợp pháp

Sản phẩmGiải phápNguồn

Ủng hộHợp pháp

© 2026 NST LABS TECH LTD. ALL RIGHTS RESERVED

Quay lại Blog
phát hiện bot
Web Scraping

Làm thế nào để tránh bị phát hiện Bot với Puppeteer?

Phát hiện chống bot thực sự khó chịu! Có thể sử dụng Puppeteer để tránh bị phát hiện bot không? 8 phương pháp ở đây.
Jul 08, 2024Triệu Lệ Chi

Tại sao cần hệ thống chống bot?

  • Bảo vệ tài nguyên và hiệu suất của trang web

Các crawler và chương trình bot có thể gửi nhiều yêu cầu trong thời gian ngắn, tiêu tốn tài nguyên máy chủ, dẫn đến giảm hiệu suất hoặc thậm chí sập trang web.

Hệ thống chống bot có thể giúp trang web quản lý và hạn chế các yêu cầu này, giữ cho trang web ổn định và sẵn có.

  • Ngăn chặn việc ăn cắp và lạm dụng dữ liệu

Một số chương trình bot thu thập nội dung trang web để sử dụng trái phép, chẳng hạn như ăn cắp nội dung và thu thập dữ liệu. Hệ thống chống bot có thể giúp bảo vệ dữ liệu và nội dung trên trang web, ngăn chặn truy cập và lạm dụng trái phép.

  • Tăng cường bảo mật

Các chương trình bot độc hại có thể được sử dụng cho các cuộc tấn công như tấn công từ chối dịch vụ phân tán (DDoS), tấn công brute force để bẻ khóa mật khẩu, v.v. Hệ thống chống bot có thể giúp phát hiện và ngăn chặn các hành vi độc hại này, tăng cường bảo mật tổng thể của trang web.

  • Bảo vệ quyền riêng tư của người dùng

Một số chương trình bot có thể cố gắng lấy thông tin cá nhân của người dùng như địa chỉ email, thông tin liên hệ, v.v. Hệ thống chống bot có thể giúp bảo vệ quyền riêng tư của người dùng, ngăn chặn việc thu thập và sử dụng trái phép thông tin này.

  • Cải thiện trải nghiệm người dùng

Khi chương trình bot truy cập trang web quá nhiều, có thể ảnh hưởng đến tốc độ và trải nghiệm của người dùng thật. Bằng cách hạn chế lưu lượng bot, trang web có thể đảm bảo trải nghiệm tốt hơn cho người dùng thật.

  • Ngăn chặn gian lận quảng cáo

Một số chương trình bot giả mạo người dùng nhấp vào quảng cáo để thực hiện gian lận quảng cáo, gây tổn thất cho nhà quảng cáo. Hệ thống chống bot có thể phát hiện và ngăn chặn các lượt nhấp giả mạo này, bảo vệ lợi ích của nhà quảng cáo.

Hệ thống chống bot hoạt động như thế nào?

Hệ thống chống bot sử dụng nhiều kỹ thuật và phương pháp khác nhau để phát hiện và ngăn chặn lưu lượng bot. Dưới đây là sáu phương pháp phân tích phổ biến:

1. Phân tích hành vi

  • Giám sát các mẫu hành vi của người dùng trên trang web, chẳng hạn như di chuyển chuột, nhấp chuột, cuộn và nhập bàn phím. Chương trình bot thường không thể mô phỏng hành vi tự nhiên của con người.
  • Phân tích tốc độ và tần suất của các yêu cầu của người dùng. Chương trình bot thường gửi yêu cầu với tốc độ không phải của con người, chẳng hạn như nhiều yêu cầu mỗi giây.

2. Phát hiện thiết bị và môi trường

  • Thu thập thông tin dấu vân tay của trình duyệt của người dùng, bao gồm loại trình duyệt, phiên bản, hệ điều hành, plugin, v.v. Dấu vân tay của chương trình bot thường khác so với người dùng thật.
  • Kiểm tra giá trị trường User-Agent trong tiêu đề yêu cầu. Nhiều chương trình bot sử dụng giá trị User-Agent mặc định hoặc không hợp lệ.

3. Cơ chế thách thức-phản hồi

  • Hệ thống chống bot sử dụng CAPTCHA hoặc reCAPTCHA yêu cầu người dùng thực hiện một số nhiệm vụ (chẳng hạn như nhận diện đối tượng trong ảnh) để xác minh họ là người thật.
  • Chèn các trường hoặc liên kết ẩn vào trang web (honeypot), người dùng thật sẽ không tương tác với các yếu tố này, trong khi chương trình bot có thể kích hoạt các bẫy này, tiết lộ danh tính của nó.

4. Phát hiện IP và vị trí địa lý

  • Sử dụng danh sách địa chỉ IP độc hại đã biết để chặn các yêu cầu từ các địa chỉ này.
  • Hạn chế truy cập dựa trên vị trí địa lý của địa chỉ IP. Chẳng hạn, chỉ cho phép yêu cầu từ các quốc gia hoặc khu vực cụ thể.

5. Phân tích lưu lượng

  • Giám sát và phân tích mẫu lưu lượng của trang web, phát hiện các đỉnh lưu lượng bất thường và phân bố.
  • Phân tích thời gian phiên và tương tác của người dùng. Phiên của chương trình bot thường ngắn và có quy luật.

6. Học máy

Sử dụng các thuật toán học máy để phân tích và phát hiện sự khác biệt giữa hành vi của người dùng thật và chương trình bot. Các mô hình học máy có thể học và thích nghi với các hành vi bot mới.

Làm thế nào để trang web phát hiện Puppeteer?

Trang web có thể kiểm tra các biến JavaScript cụ thể trên trang, những biến này thường liên quan đến việc sử dụng Puppeteer.

Chẳng hạn, họ có thể tìm các tên biến chứa "puppeteer" hoặc các định danh liên quan khác.

JavaScript Copy
for (let key in window) {
    if (key.includes('puppeteer') || key.includes('webdriver')) {
        // Đã phát hiện Puppeteer
    }
}

Puppeteer cũng sẽ sửa đổi hành vi trình duyệt để thực hiện các nhiệm vụ tự động. Do đó, trang web có thể kiểm tra sự tồn tại và giá trị của các thuộc tính như navigator.webdriver để xác định liệu có công cụ tự động nào đang điều khiển trình duyệt hay không.

Thuộc tính này thường được đặt thành true trong Puppeteer.

Cách đơn giản nhất để vượt qua hệ thống chống bot - Nstbrowser

Muốn nhanh chóng vượt qua hệ thống chống bot? Hãy bắt đầu sử dụng Nstbrowser miễn phí ngay bây giờ! Nstbrowser cung cấp:

  • Luân phiên IP thông minh
  • Proxy nâng cao
  • Trình giải mã CAPTCHA

Nstbrowser không chỉ sử dụng dấu vân tay trình duyệt thật để truy cập web mà còn mô phỏng hành vi và thói quen của người dùng thật, khiến hệ thống chống bot không thể phát hiện.

Ngoài ra, để đơn giản hóa quá trình thu thập dữ liệu web và tự động hóa, Nstbrowser được trang bị công nghệ mở khóa trang web mạnh mẽ, cung cấp trải nghiệm truy cập web liền mạch.

8 phương pháp tốt nhất để tránh bị phát hiện bot khi sử dụng Puppeteer

Như đã đề cập ở trên, phát hiện bot đã trở thành một vấn đề chính đối với các chương trình thu thập dữ liệu web. Nhưng đừng lo! Chúng ta vẫn có thể dễ dàng giải quyết vấn đề này.

Ngoài việc sử dụng Nstbrowser, dưới đây là một số mẹo để tránh bị phát hiện bot khi sử dụng Puppeteer:

Phương pháp 1. Luân phiên IP/Proxy

Một trong những cách phát hiện chính của các hệ thống chống bot là kiểm tra địa chỉ IP. Máy chủ web có thể suy ra mẫu địa chỉ IP thông qua việc duy trì nhật ký yêu cầu.

Họ sử dụng tường lửa ứng dụng web (WAF) để theo dõi và chặn hoạt động của địa chỉ IP, đồng thời đưa địa chỉ IP nghi ngờ vào danh sách đen. Các yêu cầu lặp đi lặp lại và lập trình sẽ làm giảm uy tín của địa chỉ IP và dẫn đến việc bị chặn vĩnh viễn.

Để tránh bị phát hiện bot, bạn có thể sử dụng luân phiên IP hoặc cấu hình proxy trong Puppeteer:

JavaScript Copy
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    args: [
      '--proxy-server=http://your_proxy_ip:your_proxy_port',
      // Thêm bất kỳ cờ Chrome nào khác bạn cần
    ],
  });
  const page = await browser.newPage();

  // Bây giờ Puppeteer sẽ sử dụng proxy được chỉ định ở trên
  await page.goto('https://example.com');
  
  // Tiếp tục với các nhiệm vụ tự động hóa của bạn

  await browser.close();
})();
  • Tham số --proxy-server=http://your_proxy_ip:your_proxy_port chỉ định địa chỉ và cổng của máy chủ proxy.
  • Bạn có thể thêm các cờ Chrome khác (args) theo nhu cầu.

Hãy chắc chắn thay thế your_proxy_ip và your_proxy_port bằng địa chỉ IP và cổng của máy chủ proxy thực.

Phương pháp 2. Luân phiên HTTP header và User-Agent

Trang web thường kiểm tra User-Agent của yêu cầu để xác định yêu cầu đến từ trình duyệt và hệ điều hành nào.

Thông thường, Puppeteer sử dụng User-Agent cố định, điều này làm cho nó dễ bị phát hiện. Bằng cách ngẫu nhiên hóa User-Agent, yêu cầu của bạn sẽ có khả năng được nhận diện là từ những người dùng khác nhau.

Ngoài ra, hệ thống chống bot cũng kiểm tra HTTP header để nhận diện bot. Các header này bao gồm Accept-Language, Accept-Encoding, Cache-Control, v.v.

Các header HTTP mặc định cũng có thể tiết l

ộ rằng yêu cầu đến từ bot. Vì vậy, ngẫu nhiên hóa hoặc cấu hình các header này giúp che giấu sự hiện diện của bot.

Dưới đây là cách làm trong Puppeteer:

JavaScript Copy
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // Đặt ngẫu nhiên User-Agent
  const userAgentList = [
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15',
    // Thêm các User-Agent khác nếu cần
  ];
  const randomUserAgent = userAgentList[Math.floor(Math.random() * userAgentList.length)];
  await page.setUserAgent(randomUserAgent);

  // Đặt ngẫu nhiên HTTP header
  await page.setExtraHTTPHeaders({
    'Accept-Language': 'en-US,en;q=0.9',
    'Accept-Encoding': 'gzip, deflate, br',
    'Cache-Control': 'no-cache',
    // Thêm các header khác nếu cần
  });

  await page.goto('https://example.com');

  // Tiếp tục với các nhiệm vụ tự động hóa của bạn

  await browser.close();
})();
  • userAgentList là một mảng chứa các chuỗi User-Agent khác nhau.
  • randomUserAgent chọn ngẫu nhiên một User-Agent từ danh sách.

Phương pháp 3. Ngụy trang dấu vân tay trình duyệt

Các trang web có thể kiểm tra dấu vân tay trình duyệt (browser fingerprinting) để nhận diện bot. Dấu vân tay này bao gồm nhiều yếu tố như loại trình duyệt, phiên bản, hệ điều hành, độ phân giải màn hình, font chữ cài đặt, plugin trình duyệt, và nhiều yếu tố khác.

Để tránh bị phát hiện, bạn có thể sử dụng các thư viện như puppeteer-extra-plugin-stealth để ngụy trang dấu vân tay của trình duyệt:

JavaScript Copy
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');

puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  await page.goto('https://example.com');

  // Tiếp tục với các nhiệm vụ tự động hóa của bạn

  await browser.close();
})();
  • Thư viện puppeteer-extra-plugin-stealth sẽ áp dụng nhiều biện pháp để che giấu sự hiện diện của bot.

Phương pháp 4. Điều khiển cửa sổ và kích thước màn hình

Các trang web có thể kiểm tra kích thước và vị trí cửa sổ trình duyệt để phát hiện bot. Bot thường chạy ở chế độ ẩn danh hoặc kích thước cửa sổ không bình thường.

Bạn có thể điều chỉnh kích thước và vị trí cửa sổ trình duyệt để mô phỏng hành vi của người dùng thật:

JavaScript Copy
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: false, // Không ẩn danh để tránh bị phát hiện
    args: [
      '--window-size=1920,1080', // Đặt kích thước cửa sổ
      '--start-maximized' // Khởi động trình duyệt ở chế độ toàn màn hình
    ]
  });
  const page = await browser.newPage();
  await page.setViewport({ width: 1920, height: 1080 });

  await page.goto('https://example.com');

  // Tiếp tục với các nhiệm vụ tự động hóa của bạn

  await browser.close();
})();
  • --window-size=1920,1080 chỉ định kích thước cửa sổ trình duyệt.
  • --start-maximized khởi động trình duyệt ở chế độ toàn màn hình.

Phương pháp 5. Sử dụng Cookie

Nếu bạn muốn lấy dữ liệu từ các nền tảng truyền thông xã hội hoặc các trang web yêu cầu xác thực khác, bạn sẽ thường xuyên phải đăng nhập lặp đi lặp lại.

Các yêu cầu xác thực lặp đi lặp lại này sẽ kích hoạt cảnh báo, tài khoản có thể bị khóa hoặc phải đối mặt với CAPTCHA hoặc thách thức xác thực JavaScript.

Chúng ta có thể tránh điều này bằng cách sử dụng Cookie. Sau khi đăng nhập một lần, chúng ta có thể thu thập Cookie phiên đăng nhập để sử dụng lại trong tương lai.

Phương pháp 6. Sử dụng dịch vụ giải mã CAPTCHA

Khi thu thập dữ liệu web, bạn chắc chắn sẽ gặp vấn đề nhận diện CAPTCHA. Lúc này, bạn cần sử dụng dịch vụ giải mã CAPTCHA.

Thường thì, các dịch vụ này sử dụng người dùng thực để giải mã CAPTCHA, giảm khả năng bị phát hiện là bot.

Điều này có thể đảm bảo việc vượt qua nhận diện bot và giúp giảm chi phí vận hành bot tổng thể.

Nstbrowser dễ dàng vượt qua nhận diện bot, được trang bị trình giải mã CAPTCHA mạnh mẽ.
Sử dụng miễn phí ngay!

Bạn có suy nghĩ hoặc câu hỏi nào về việc thu thập dữ liệu web và Browseless không?
Hãy đến xem những gì các nhà phát triển khác đang chia sẻ trên Discord và Telegram!

Phương pháp 7. Trì hoãn nhập liệu và ngẫu nhiên hóa

Người dùng thật không thể gửi 500 yêu cầu trong một phút!

Người dùng thật cũng không thể có thói quen và chương trình duyệt web cố định!

Do đó, để tránh bị hệ thống chống bot dễ dàng phát hiện, chúng ta cần thiết lập trì hoãn nhập liệu và một số hành động ngẫu nhiên khi sử dụng Puppeteer. Điều này có thể mô phỏng hành vi người dùng thật, từ đó giảm khả năng bị phát hiện.

  • Mô phỏng tốc độ nhập liệu của con người, thay vì nhập liệu ngay lập tức:
JavaScript Copy
await page.type('input[name=username]', 'myUsername', { delay: 100 });
await page.type('input[name=password]', 'myPassword', { delay: 100 });
  • Ngẫu nhiên hóa di chuyển chuột, nhấp chuột và cuộn trang:
JavaScript Copy
await page.mouse.move(100, 100);
await page.mouse.click(100, 100);

Phương pháp 8. Sử dụng tiện ích trình duyệt

Khi sử dụng Puppeteer để thực hiện các nhiệm vụ tự động hóa, đôi khi bạn có thể tận dụng các tiện ích trình duyệt để giúp vượt qua một số nhận diện bot.

Các tiện ích này có thể thay đổi hành vi của trình duyệt, làm cho nó trông giống như được thao tác bởi người dùng thật hơn.

Tải tiện ích cục bộ:

  • Tải về tiện ích trình duyệt mà bạn muốn sử dụng (chẳng hạn như tiện ích Chrome) về máy cục bộ.
  • Khi khởi động Puppeteer, tải tiện ích thông qua tham số args:
JavaScript Copy
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: false, // không ẩn danh
    args: [
      `--disable-extensions-except=/path/to/extension/`, // Tải tiện ích với đường dẫn chỉ định
      `--load-extension=/path/to/extension/`
    ]
  });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  // Tiếp tục thực hiện mã của bạn
})();
  • Điều này sẽ cho phép bạn tải và sử dụng các tiện ích cụ thể trong phiên trình duyệt Puppeteer, đôi khi có thể giúp vượt qua nhận diện bot.

Thay đổi đường dẫn tiện ích Chrome mặc định

Puppeteer mặc định sử dụng một thư mục tiện ích trống để mô phỏng Chrome. Bạn có thể chỉ định một thư mục dữ liệu người dùng tùy chỉnh bằng cách thiết lập userDataDir và tải trước các tiện ích cần thiết trong đó.

Kết luận

Trong bài viết này, chúng tôi đã thảo luận:

  • Tại sao các trang web sử dụng hệ thống chống bot?
  • Chúng hoạt động như thế nào?
  • 8 phương pháp tốt nhất để tránh nhận diện bot khi sử dụng Puppeteer.

Giải pháp RPA của Nstbrowser là một trong những lựa chọn tốt nhất để tránh nhận diện bot, bạn có thể cấu hình và sử dụng nó hoàn toàn miễn phí.

Hơn
cào web
Web Scraping
Cách thực hiện Web Scraping trong Golang sử dụng Colly?
Golang là một trong những công cụ mạnh mẽ nhất để thu thập dữ liệu trên web. Và Colly giúp rất nhiều khi sử dụng Go. Đọc blog này và tìm thông tin chi tiết nhất về Colly và học cách thu thập dữ liệu từ trang web với Colly.
Sep 30, 2024Tạ Quí Lĩnh
Java web crawler
Web Scraping
Web Crawler trong Java: Hướng dẫn từng bước 2024
Java web crawler giúp các tác vụ tự động hóa và thu thập dữ liệu web dễ dàng. Làm thế nào để thu thập dữ liệu web bằng Java web crawler? Đây là tất cả mọi thứ bạn sẽ thích!
Aug 16, 2024Triệu Lệ Chi
scrapy so với beautifulsoup
Web Scraping
Scrapy so với Beautifulsoup - Cái nào phù hợp hơn với bạn?
Scrapy so với BeautifulSoup, điểm giống và khác nhau là gì? Cái nào phù hợp hơn với bạn? Hãy tìm hiểu trong blog này.
Jul 31, 2024Tạ Quí Lĩnh
trình duyệt chống phát hiện
Web Scraping
Trình duyệt chống phát hiện tốt nhất để quét web năm 2024
Trình duyệt chống phát hiện giúp bạn ẩn dấu vân tay của trình duyệt khi quét trang web. Nó thực sự đơn giản hóa công việc của bạn. Đọc blog này và tìm thấy nhiều hơn nữa!
Jul 19, 2024Triệu Lệ Chi
Urllib, Urllib3, Requests
Web Scraping
Urllib, Urllib3 và Yêu cầu: Cái nào là tốt nhất cho bạn khi quét web?
Urllib, urllib3 và request là 3 thư viện Python thông dụng và tuyệt vời. Sự khác biệt của 3 cái này là gì? Hãy đọc bài viết này và tìm ra bài viết phù hợp nhất với bạn nhé!
Jul 17, 2024Tạ Quí Lĩnh
Lỗi 403 Bị Cấm
Web Scraping
Lỗi 403 Forbidden: Nó là gì? Làm thế nào để khắc phục nó?
Lỗi 403 cực kỳ khó chịu! Lỗi 403 bị cấm là gì? Giải quyết thế nào? Hãy tìm câu trả lời từ blog này.
Jul 12, 2024Triệu Lệ Chi
Mục lục