Posts 30 个检测站点全过的开源免费指纹浏览器 - 兼容Playwright/Puppeteer
Post
Cancel

30 个检测站点全过的开源免费指纹浏览器 - 兼容Playwright/Puppeteer

说实话,用 Playwright 写爬虫这件事,我已经有点 PTSD 了。

上周又是个典型场景:脚本逻辑没问题,本地跑得好好的,一上服务器就被 Cloudflare 按在地上摩擦。调 User-Agent、改 canvas 指纹、隐藏 webdriver 标志,折腾两天好不容易过了一个站点,换到另一个站点又报错。


直到我在 GitHub 上翻到这个项目。

CloakBrowser 的思路跟其他 stealth 工具完全不一样。它不是用 JS 往页面里注入脚本,也不是调一堆 Chrome 参数,而是直接改了 Chromium 的 C++ 源码,把指纹信息做到编译层面。

检测服务看到的是什么?就是一个普通的 Chrome 浏览器。因为它本身就是个真的浏览器,只是从娘胎里生下来就被改了指纹。


实测数据:30 个检测站点全过

直接看结果吧。

检测服务普通 PlaywrightCloakBrowser
reCAPTCHA v30.10.9
Cloudflare Turnstile
FingerprintJS被识别
BrowserScan异常正常

官方说是 30/30 全过,我自己试了其中五六个,确实都过了。reCAPTCHA v3 能到 0.9 这个分数,基本上就是真人的水平。


接入有多简单?改一行 import

如果你已经在用 Playwright,切换成本基本为零。真的就改一下导入:

Python:

1
2
3
4
5
6
7
8
# 之前
from playwright.sync_api import sync_playwright
pw = sync_playwright().start()
browser = pw.chromium.launch()

# 现在
from cloakbrowser import launch
browser = launch()

JavaScript:

1
2
3
4
5
6
7
// 之前
import { chromium } from 'playwright';
const browser = await chromium.launch();

// 现在
import { launch } from 'cloakbrowser';
const browser = await launch();

后面的代码不用动。new_page()goto()click() 这些 API 都是一样的,你现有的脚本可以直接跑。


它到底改了什么

CloakBrowser 的 Chromium 二进制文件带了 42 个 C++ 级别的补丁,覆盖的点包括:

  • Canvas、WebGL、Audio 指纹 —— 返回随机化的真实数据,不是默认值
  • 字体和 GPU 信息 —— 模拟真实硬件特征
  • 屏幕分辨率 —— 跟真实设备一致
  • navigator.webdriver —— 从源头设成 false
  • CDP 输入行为 —— 让事件触发看起来像是真人操作
  • TLS 指纹 —— ja3/ja4 跟真 Chrome 一样

关键是这些都是编译进去的,不是运行时注入 JS。所以 Chrome 升级不会搞坏它,补丁跟着二进制一起更新。


humanize 模式:让操作更像真人

除了静态指纹,还有个 humanize=True 的参数。开了之后,鼠标、键盘、滚动的行为都会变成类真人模式:

  • 鼠标移动走贝塞尔曲线,带一点过冲
  • 键盘是逐字符输入,有思考停顿,偶尔还会打错字然后删掉重打
  • 滚动是加速-匀速-减速的微步进
  • 点击有真实的按住时长
1
browser = launch(humanize=True)

deviceandbrowserinfo.com 的 24 项行为检测,开了这个之后全过。


其他有用的功能

多语言支持

Python:pip install cloakbrowser

JavaScript:npm install cloakbrowser

Playwright 和 Puppeteer 都支持。

代理和时区自动匹配

1
2
# 根据代理 IP 自动检测时区和语言
browser = launch(proxy="http://user:pass@proxy:8080", geoip=True)

持久化会话

1
2
# 保存 cookies 和 localStorage,不用每次都重新登录
ctx = launch_persistent_context("./profile", headless=False)

Docker 一键测试

1
docker run --rm cloakhq/cloakbrowser cloaktest

浏览器指纹管理器

项目还配了个自托管的管理界面,可以当成 Multilogin、GoLogin 的开源替代品来用。

浏览器指纹管理器


跟其他方案比怎么样

市面上常见的三类方案:

  1. playwright-stealth / puppeteer-extra —— JS 注入,Chrome 一升级就失效
  2. undetected-chromedriver —— 配置层补丁,维护不太活跃,检测率一般
  3. Camoufox —— 也是 C++ 级别补丁,但基于 Firefox,API 跟 Playwright 不兼容

CloakBrowser 的好处是源码级修改 + Chromium 内核 + Playwright API 兼容,维护也勤快,已经跟进到 Chromium 145 了。


适合什么场景

  • 数据采集 —— 绕过 Cloudflare、DataDome 这些防护
  • 自动化测试 —— 测需要登录态的站点
  • 多账号管理 —— 每个环境独立指纹,互不干扰
  • AI Agent —— 给 browser-use、Crawl4AI、LangChain 这些框架提供隐形浏览器

项目信息

维护挺活跃的,最近几周还在持续更新 Chromium 145 的补丁。


我自己用下来,最大的感受是:终于不用在反检测这件事上消耗太多精力了。

以前写个爬虫,一半时间在搞业务逻辑,一半时间在跟 Cloudflare 斗智斗勇。现在接入 CloakBrowser 之后,至少反检测这块不用再反复折腾。省下来的时间,可以用来做真正有价值的事。

如果你也在用 Playwright 做自动化,一直被各种反检测机制困扰,建议直接上手试一遍。效果可以用检测站点现场验证,行就行,不行也不亏。


真诚邀请您走进我的知识小宇宙,关注我个人的公众号,在这里,我将不时为您献上独家原创且极具价值的技术内容分享。每一次推送,都倾注了我对技术领域的独特见解与实战心得,旨在与您共享成长过程中的每一份收获和感悟。您的关注和支持,是我持续提供优质内容的最大动力,让我们在学习的道路上并肩同行,共同进步,一起书写精彩的成长篇章!

This post is licensed under CC BY 4.0 by the author.

端口又被占用了?这个 4.6k Star 的小工具让你一键解决

-

Trending Tags