跳到正文

开源的 selenium-stealth 替代方案

selenium-stealth 每月仍有数十万次下载,但它的最后一个版本发布于 2020 年。它用 JavaScript 覆盖少数几个值,还要你手动填写 GPU 和平台信息。Clearcote 在引擎内部生成完整的身份,各项值彼此一致,也与网络层一致。

selenium-stealth 是什么?

selenium-stealth 是一个小型 Python 包,为 Selenium + Chrome 重新实现了 puppeteer-extra-plugin-stealth 的部分功能。调用 stealth(driver, ...) 后,它会注入脚本,覆盖 navigator.webdriver、语言、厂商、平台以及 WebGL 厂商和渲染器。它采用 MIT 许可,至今仍很流行:PyPI 月下载量约 500,000 次。

它也已无人维护。PyPI 上的最后一个版本(1.0.6)发布于 2020 年 11 月,此后仓库再没有任何提交。README 中的示例在当前的 Selenium 上已无法照原样运行,因为 Selenium 移除了 executable_path 参数;而且示例把 platform="Win32" 与 "Intel Iris OpenGL Engine" 这个 WebGL 渲染器搭配在一起,而这是 macOS 风格的字符串,Windows 上的 Chrome 并不会报告它。这正是手工拼凑身份画像的核心问题:每个值都是单独设置的,没有任何机制检查它们是否属于同一台机器。它也没有给 ChromeDriver 本身打补丁;那是 undetected-chromedriver 的用途。

Clearcote 与 selenium-stealth 对比

功能Clearcoteselenium-stealth
实现方式 引擎层面的 C++ 补丁:原生值 由 Selenium 注入的 JavaScript 覆盖
身份画像一致性 由一个种子生成;GPU、平台和字体相互一致 手动填写,没有任何交叉校验
可被检测的痕迹 无:所有 realm 中都是原生值 页面脚本中的覆盖,在 worker 中不生效
ChromeDriver 残留特征 不使用 ChromeDriver:通过 CDP 驱动 原样保留
TLS / 网络层一致性 ClientHello 跟随所声明的 Chrome 版本 未处理
维护状态 活跃,跟进每个 Chromium 主版本 最后一次发布于 2020 年 11 月
框架 Playwright 与 Puppeteer(Python、Node、.NET) Selenium(Python)
费用 开源版构建免费;最新构建凭 GitHub 免费使用;Pro $49/月 免费开源(MIT)

对比整理于 2026年11月。selenium-stealth 的许可方式:开源(MIT);细节可能会变化,请以其项目的最新信息为准。

实测:12 款工具,同样的 10 个网站

我们运行了开源的 browsers-benchmark 测试框架共 5 次,最后一次于 2026年10月27日 完成。每个工具都使用独立的美国住宅 IP,且每次运行的顺序都不同。“通过”表示该框架针对该网站的自带检查找到了页面本身,而不是拦截页或验证页。 Clearcote 在 Windows 台式机上测量(最新构建);其他工具在 Linux 服务器上测量。

selenium-stealth 不在此次基准测试中:该测试框架没有它的驱动。表格列出的是框架支持的工具。

各工具在有头和无头模式下打开真实页面的页面加载占比
工具有头无头
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

网站:搜索结果页, 社区论坛, 软件公司网站, 奢侈品零售商, 电商平台商品页, 票务网站, 时装零售商, 旅行预订网站, 航空公司, 社交网络。 这只是一个网络环境、一周时间内的快照:结果会随每次发布、每个代理以及网站本身而变化,而且没有任何工具每次都能加载每个网站。原始结果(JSON)。

团队为什么选择 Clearcote

无需手动填写 GPU 字符串

selenium-stealth 需要你自己选定 WebGL 厂商和渲染器,否则就退回到固定的 Intel 默认值。Clearcote 从一个种子派生出 GPU、平台、字体和屏幕,它们描述的是一台可能真实存在的机器。

原生值

注入的覆盖必须设法躲过对函数的检查,而且在 Web Worker 中不会生效。Clearcote 在 Chromium 内部修改这些值,所以无论在页面还是 worker 中,都找不到覆盖。

针对当下的 Chrome 持续维护

检测手段随每个 Chrome 版本而变化。Clearcote 会跟进每个新的 Chromium 主版本;selenium-stealth 的规避脚本还停留在 2020 年。

网络层同样一致

声称是某个 Chrome 版本的浏览器,就应该发出该版本的 TLS 握手。Clearcote 让两者保持同步。

什么情况下 selenium-stealth 可能更合适

  • 你在维护一个已经用了它的旧 Selenium 脚本,只需要在检测宽松的网站上隐藏 navigator.webdriver。
  • 你无法更换框架。如果要继续使用 Selenium,可以看看积极维护中的 SeleniumBase。

常见问题

selenium-stealth 还在维护吗?

没有。PyPI 上的最后一个版本是 2020 年 11 月发布的 1.0.6,此后 GitHub 仓库再没有任何提交。它仍然可以安装,但其规避脚本既没跟上 Chrome,也没跟上检测手段。

不用 selenium-stealth 的话,该用什么?

如果你想继续使用 Selenium,SeleniumBase 的 UC 模式或 CDP 模式是有人维护的选择。如果你可以切换到 Playwright 或 Puppeteer,Clearcote 会在浏览器引擎中修改指纹,而不是用 JavaScript 去覆盖。

为什么 WebGL 厂商和渲染器的值很重要?

它们是被检查得最多的指纹值之一,而且必须与平台、字体以及 GPU 的实际渲染结果相吻合。例如,Windows 平台配上 macOS 的渲染器字符串,描述的就是一台根本不存在的机器。

如何用 Selenium 抓取网站?

用 driver.get() 加载页面,用 WebDriverWait 等待内容出现,再用 CSS 选择器读取。Selenium 网页抓取指南提供了完整的 Python 示例,涵盖分页、保存为 CSV,以及 Selenium 爬虫为什么会被拦截。

改得有多深

补丁数是我们比较过的任何分支的两倍以上。

按方案统计编译进 Chromium 的补丁。基于脚本的工具完全不改动引擎。

隐身插件

例如 puppeteer-extra-plugin-stealth

0

打过补丁的驱动

例如 undetected-chromedriver、nodriver

0

其他 Chromium 分支

免费版与付费版构建

35–87

Clearcote Pro

r57,Chromium 156

240

公开的补丁数,截至 2026年10月。区间涵盖其他分支的免费版与付费版构建;Clearcote 的数字来自 Pro 版构建。

测一测

365 项检查,免费,在你自己的浏览器上

这是每个 Clearcote 构建都要接受的指纹检测。在你现在用的浏览器上运行一下,对比看看。

运行检测
读一读

开源版构建的补丁全部公开

免费的开源版构建采用 BSD-3,可从源码复现,无需账号。Pro 版构建在此之上加入了私有补丁。

在 GitHub 上打开
看它发布

57 次引擎发布,7 个 Chromium 主版本

每个补丁都会带到每个新的 Chromium 版本。最新构建在新主版本发布当天跟进。

查看发布

相关阅读

文档Migrating from undetected-chromedriverMove an undetected-chromedriver or selenium-stealth script to Clearcote: launch() replaces the driver, with a Selenium-to-Playwright call mapping.问答Why does navigator.webdriver reveal automation?navigator.webdriver is true whenever a browser is launched under automation flags; overriding it from JavaScript is itself detectable, so the fix belongs in the engine.问答What is WebGL fingerprinting?WebGL fingerprinting reads the GPU's render output plus driver strings (UNMASKED_VENDOR/RENDERER) and parameter limits — highly device-specific, and hard to fake coherently.对比Clearcote 与 undetected-chromedriver 对比undetected-chromedriver 每月下载量仍有约 2.5M 次,但它的最后一个版本发布于 2024 年 2 月。它在原版 Chrome 上隐藏 Selenium/ChromeDriver 的痕迹,却完全不涉及指纹或网络层。Clearcote 在引擎中同时修改这两者。对比Clearcote 与 Camoufox 对比Camoufox 是一款做得很好的开源指纹浏览器,基于 Firefox。Clearcote 把同样的引擎层面思路用在 Chromium 上,让你的自动化呈现的是约 66% 的网民实际在用的浏览器,而不是只有约 3% 的人在用的那一款。对比Clearcote 与 CloakBrowser 对比CloakBrowser 是一款能力扎实的引擎层面 stealth Chromium,用户众多,但其打过补丁的二进制文件是闭源的。Clearcote 同样工作在引擎层面,并提供开源版构建,其中每个补丁你都能阅读并重新构建。

试试这款开源 Chromium 替代方案

免费开源,可直接接入 Playwright 与 Puppeteer,一直到 TLS 握手都保持一致。

一个浏览器免费:GitHub、银行卡验证或公司 Google 账号。绝不扣款。