Chuyển đến nội dung

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ăngClearcotepuppeteer-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ợ.

Tỷ lệ lượt tải trang đến được trang thật, theo từng công cụ, ở chế độ headed và headless
Công cụHeadedHeadless
Clearcote0.63.2 · r5278%39/5080%40/50
Camoufox0.5.8 · v156.0.1-beta.3672%36/5080%40/50
Invisible Playwright0.43.0 · Firefox76%38/5078%39/50
CloakBrowser0.6.474%37/5064%32/50
SeleniumBase (CDP mode)4.49.0 · Chrome74%37/50—
nodriver0.50.6 · Chrome74%37/5040%20/50
Zendriver0.17.1 · Chrome64%32/5060%30/50
tf-playwright-stealth (Firefox)1.2.058%29/5062%31/50
tf-playwright-stealth (Chromium)1.2.056%28/5050%25/50
Playwright (Chromium)1.62.056%28/5030%15/50
Playwright (Firefox)1.62.054%27/5054%27/50
Patchright1.64.3 · Chrome24%12/5026%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.

Sâu đến đâu

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

0

Driver đã vá

ví dụ undetected-chromedriver, nodriver

0

Các bản fork Chromium khác

bản build miễn phí và trả phí

35–87

Clearcote Pro

r57, Chromium 156

240

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.

Kiểm tra

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 tra
Đọc

Cá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 GitHub
Theo dõi phát hành

57 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ành

Bài đọc liên quan

Tài liệuMigrating from puppeteer-extra-plugin-stealthKeep Puppeteer, drop the stealth plugin: connect it to Clearcote's serve(), where the fingerprint is set in the engine. Option mapping and code.Hỏi đápWhy does Function.toString() reveal a hooked function?Calling toString() on a native function returns “[native code]”; an override returns its own source instead — so detectors stringify APIs to catch JavaScript spoofs.So sánhClearcote vs playwright-stealthplaywright-stealth là cách nhanh nhất để thêm stealth cho Playwright trong Python: chỉ cần một wrapper là mọi trang đều được gắn một bộ evasion JavaScript. Nhưng các evasion đó là lớp ghi đè trên trình duyệt nguyên bản, và chính maintainer gọi nó là một bản proof of concept. Clearcote thì đặt các giá trị đó một cách native ngay trong engine, nên trang web không có lớp ghi đè nào để tìm ra.Nghiên cứuCoherence over camouflage: why a plausible identity beats a hidden oneMost stealth tooling tries to hide. The signals that survive scrutiny don't hide — they agree with each other.So sánhClearcote vs CamoufoxCamoufox là một trình duyệt antidetect mã nguồn mở được làm kỹ lưỡng, xây trên Firefox. Clearcote áp dụng cùng cách tiếp cận ở cấp engine cho Chromium, để tự động hóa của bạn thể hiện ra đúng loại trình duyệt mà khoảng 66% web thực sự dùng, thay vì loại chỉ khoảng 3% dùng.So sánhClearcote vs CloakBrowserCloakBrowser là một bản Chromium stealth ở cấp engine có năng lực và được đông đảo người dùng theo dõi, nhưng binary đã vá là mã nguồn đóng. Clearcote cũng can thiệp ở cấp engine và có bản build mở mà bạn đọc và build lại được từng patch.So sánhClearcote vs undetected-chromedriverundetected-chromedriver vẫn được tải khoảng 2,5 triệu lượt mỗi tháng, nhưng bản phát hành cuối là từ tháng 2/2024. Nó che điểm lộ Selenium/ChromeDriver trên Chrome nguyên bản và không hề động đến fingerprint hay tầng mạng. Clearcote thay đổi cả hai trong engine.

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.