Lựa chọn thay thế puppeteer-extra-plugin-stealth mã nguồn mở
Stealth plugin vẫn là cách được cài nhiều nhất để gắn evasion vào Puppeteer, với hơn một triệu lượt tải mỗi tuần, nhưng đã không có bản phát hành mới nào từ tháng 3/2023. Mỗi evasion là một patch JavaScript trên Chrome nguyên bản, và patch JavaScript thì tự để lộ mình. Clearcote đặt các giá trị đó một cách native ngay trong engine.
puppeteer-extra-plugin-stealth là gì?
puppeteer-extra-plugin-stealth (của berstend) là một bộ module evasion JavaScript được chèn bằng page.evaluateOnNewDocument trước khi script của trang chạy. Mỗi module vá một dấu hiệu: navigator.webdriver, plugin, chrome.runtime, WebGL vendor, iframe, codec và nhiều thứ khác. Plugin dùng giấy phép MIT và cực kỳ phổ biến, với hơn một triệu lượt tải npm mỗi tuần, và cách tiếp cận của nó đã được port sang playwright-stealth và selenium-stealth.
Trên thực tế, plugin cũng không còn được bảo trì: bản phát hành npm cuối (2.11.2) ra vào tháng 3/2023, và từ đó đến nay không có dòng code nào được commit vào repository. Giới hạn về cấu trúc thì đã có từ trước đó. Đây là các lớp ghi đè JavaScript trên một engine nguyên bản, và lớp ghi đè tự để lộ mình qua Function.prototype.toString, qua property descriptor bị thay đổi, và qua việc đọc lại từ Web Worker hoặc iframe cross-origin, nơi không có patch. Nó không thay đổi giá trị native, không động đến TLS hay HTTP/2, và không xử lý lỗ rò CDP Runtime.enable. Chính README của nó cũng thừa nhận rằng việc ngăn chặn mọi cách phát hiện Chromium headless có lẽ là bất khả thi.
Clearcote vs puppeteer-extra-plugin-stealth
| Tính năng | Clearcote | puppeteer-extra-plugin-stealth |
|---|---|---|
| Cách tiếp cận | Patch C++ ở cấp engine: giá trị native | Evasion JavaScript chèn vào từng document |
| Điểm lộ có thể bị phát hiện | Không có: native ở mọi realm (trang, worker, iframe) | Lộ ra qua toString, descriptor, việc đọc lại từ worker và iframe |
| Tính nhất quán TLS / mạng | Theo phiên bản Chrome tự nhận (JA3/JA4 + HTTP/2) | Không xử lý |
| Framework | Playwright & Puppeteer (Python, Node, .NET) | Puppeteer (Node); playwright-extra cho Playwright |
| Bảo trì | Đang phát triển tích cực | Bản phát hành cuối: tháng 3/2023 |
| Giấy phép | Bản build mở: BSD-3 | MIT |
| Chi phí | Bản build mở miễn phí; bản build mới nhất miễn phí với GitHub | Miễn phí & mã nguồn mở |
Bảng so sánh được tổng hợp ngày tháng 11 năm 2026. puppeteer-extra-plugin-stealth là Mã nguồn mở (MIT); thông tin có thể thay đổi — hãy xem trang dự án của nó để có thông tin mới nhất.
Đo thực tế: 12 công cụ trên cùng 10 trang web
Chúng tôi đã chạy harness mã nguồn mở browsers-benchmark 5 lần, lần cuối hoàn tất vào 27 tháng 10, 2026. Mỗi công cụ dùng một IP dân cư Mỹ riêng, theo thứ tự khác nhau ở mỗi lần chạy. Một lượt đạt nghĩa là bước kiểm tra riêng của harness cho trang đó đã tìm thấy chính trang thật, không phải trang chặn hay trang thử thách (challenge). Clearcote được đo trên máy tính để bàn Windows (bản build mới nhất); các công cụ khác chạy trên máy chủ Linux.
puppeteer-extra-plugin-stealth không có trong benchmark này: harness không có driver cho công cụ đó. Bảng chỉ hiển thị các công cụ mà harness hỗ trợ.
| Công cụ | Headed | Headless |
|---|---|---|
| Clearcote0.63.2 · r52 | 78%39/50 | 80%40/50 |
| Camoufox0.5.8 · v156.0.1-beta.36 | 72%36/50 | 80%40/50 |
| Invisible Playwright0.43.0 · Firefox | 76%38/50 | 78%39/50 |
| CloakBrowser0.6.4 | 74%37/50 | 64%32/50 |
| SeleniumBase (CDP mode)4.49.0 · Chrome | 74%37/50 | — |
| nodriver0.50.6 · Chrome | 74%37/50 | 40%20/50 |
| Zendriver0.17.1 · Chrome | 64%32/50 | 60%30/50 |
| tf-playwright-stealth (Firefox)1.2.0 | 58%29/50 | 62%31/50 |
| tf-playwright-stealth (Chromium)1.2.0 | 56%28/50 | 50%25/50 |
| Playwright (Chromium)1.62.0 | 56%28/50 | 30%15/50 |
| Playwright (Firefox)1.62.0 | 54%27/50 | 54%27/50 |
| Patchright1.64.3 · Chrome | 24%12/50 | 26%13/50 |
Các trang: một trang kết quả tìm kiếm, một diễn đàn cộng đồng, trang web của một công ty phần mềm, một nhà bán lẻ hàng xa xỉ, một trang sản phẩm trên sàn thương mại điện tử, một trang bán vé, một nhà bán lẻ thời trang, một trang đặt dịch vụ du lịch, một hãng hàng không, một mạng xã hội. Đây là ảnh chụp nhanh từ một mạng và trong một tuần: kết quả thay đổi theo từng bản phát hành, từng proxy và chính các trang web, và không công cụ nào tải được mọi trang ở mọi lần. Kết quả thô (JSON).
Vì sao các team chọn Clearcote
Native, không phải ghi đè
Mỗi evasion của stealth plugin là một lớp ghi đè JavaScript mà công cụ phát hiện có thể bắt được. Clearcote đặt các giá trị ngay trong engine, nên chúng hiện ra như native và không có lớp ghi đè nào để tìm.
Nhất quán giữa các realm
Các patch JavaScript áp vào trang sẽ bị lệch trong Web Worker và iframe cross-origin. Giá trị ở cấp engine khớp ở mọi nơi, khép lại cả nhóm dấu hiệu đó.
Tầng mạng
Plugin không có quyền truy cập TLS hay HTTP/2. Handshake của Clearcote theo đúng phiên bản Chrome tự nhận, nên những gì đi trên đường truyền khớp với JavaScript.
Được bảo trì và kiểm chứng
Clearcote được kiểm tra bằng các bài test công khai ở mỗi bản phát hành. Các evasion của plugin có từ đầu năm 2023, và Chrome đã tiến thêm hàng chục phiên bản kể từ đó.
Khi nào puppeteer-extra-plugin-stealth có thể là lựa chọn tốt hơn
- Bạn đang dùng Puppeteer và muốn một bộ evasion chỉ cần một dòng code cho các trang mục tiêu dễ tính.
- Bạn cần một thứ theo giấy phép MIT để gắn vào một scraper Node sẵn có.
- Với các trang test công khai và các cơ chế phát hiện cũ, nó nhanh và đôi khi là đủ.
Câu hỏi thường gặp
puppeteer-extra-plugin-stealth còn được bảo trì không?
Không còn tích cực. Bản phát hành npm cuối cùng, 2.11.2, ra từ tháng 3/2023, và từ đó đến nay repository không có commit nào. Nó vẫn cài được và được dùng rất nhiều, nhưng các evasion đã không theo kịp Chrome.
Vì sao các patch stealth bằng JavaScript bị phát hiện?
Vì chúng là lớp ghi đè lên một hàm thật. Công cụ phát hiện có thể chuyển hàm đó thành chuỗi (hàm native sẽ hiện [native code]; hàm ghi đè lộ ra mã nguồn của chính nó), kiểm tra property descriptor, hoặc đọc lại giá trị từ một iframe hay Web Worker mới, nơi patch không được áp dụng. Thay đổi ở cấp engine tránh được điều này vì giá trị là native ở mọi nơi.
Clearcote khác stealth plugin ở điểm nào?
Plugin chèn các evasion JavaScript vào Chrome nguyên bản; Clearcote là một Chromium đã chỉnh sửa, nơi các giá trị là native trong engine, nhất quán giữa worker và iframe, cùng một persona TLS/HTTP-2 mà plugin không có quyền truy cập.
Có phiên bản cho Playwright không?
Có: playwright-extra có thể nạp cùng plugin đó trong Node, còn playwright-stealth port nó sang Python. Cả hai có chung thiết kế ghi đè bằng JavaScript.
Nhiều hơn gấp đôi số bản vá của bất kỳ bản fork nào chúng tôi đã so sánh.
Số bản vá biên dịch vào Chromium, theo từng cách tiếp cận. Công cụ dựa trên script hoàn toàn không thay đổi engine.
Plugin stealth
ví dụ puppeteer-extra-plugin-stealth
Driver đã vá
ví dụ undetected-chromedriver, nodriver
Các bản fork Chromium khác
bản build miễn phí và trả phí
Clearcote Pro
r57, Chromium 156
Số bản vá đã công bố, tháng 10 năm 2026. Khoảng này gồm cả bản build miễn phí và trả phí của các bản fork khác; với Clearcote là bản build Pro.
365 phép kiểm tra, miễn phí, trên trình duyệt của chính bạn
Bài kiểm tra fingerprint mà mọi bản build Clearcote đều phải đáp ứng. Hãy chạy nó trên công cụ bạn đang dùng và so sánh.
Chạy bài kiểm traCác bản vá của bản build mở là công khai
Bản build mở miễn phí dùng BSD-3, tái tạo được từ mã nguồn và không cần tài khoản. Bản build Pro bổ sung các bản vá riêng ở trên.
Mở trên GitHub57 bản phát hành engine, 7 phiên bản chính của Chromium
Mọi bản vá đều được mang sang từng phiên bản Chromium mới. Bản build mới nhất có phiên bản chính mới ngay trong ngày phát hành.
Xem các bản phát hànhBài đọc liên quan
Dùng thử lựa chọn thay thế Chromium mã nguồn mở
Miễn phí và mã nguồn mở, thay thế drop-in cho Playwright & Puppeteer, nhất quán đến tận TLS handshake.
Miễn phí cho một trình duyệt: GitHub, một lần kiểm tra thẻ hoặc tài khoản Google của công ty. Không bao giờ trừ tiền.