Camoufox默认读取settings/camoufox.cfg配置指纹,需显式设置screen_width、screen_height等字段并设"automation": false,修改后重启实例生效;不支持requests复用cf_clearance,须通过CDP获取实时cookie。

Camoufox 的配置文件在哪,怎么改指纹?
Camoufox 的 Python 集成默认读取 settings/camoufox.cfg,这是一个 JSON 文件,不是代码里硬编码的。你不需要动源码,直接编辑这个文件就能控制浏览器指纹行为。
常见误操作是手动写死 User-Agent 或只改几个字段——Camoufox 会自动补全未设置的字段(比如 webgl_vendor、audio_hash、timezone),但前提是这些字段在 cfg 中显式设为 null 或留空;如果完全删掉某项,它可能 fallback 到默认值,反而暴露一致性。
- 必须显式设置
"screen_width"和"screen_height",否则会用固定值(易被识别) -
"platform"建议设为"Win32"或"Linux x86_64",避免出现"MacIntel"却配 Windows 分辨率这种矛盾组合 - 修改后重启 Camoufox 实例,不 reload 配置文件——它只在启动时读一次
requests 能不能直接复用 Camoufox 的 cf_clearance?
不能。Camoufox 是完整浏览器进程,cf_clearance 是它内部 JS 执行后注入的 cookie,不会自动导出到 requests 的 session 里。强行从 DevTools 复制 cookie 手动塞进 requests,大概率 5–10 分钟就失效,因为 Cloudflare 会校验 TLS 指纹、TCP 栈行为、JS 执行上下文三者是否匹配。
真正可行的做法是让 Camoufox 自动完成整个流程,再把页面 HTML 或 API 响应结果传回 Python 主进程。
立即学习“Python免费学习笔记(深入)”;
- 用
subprocess启动 Camoufox 并加--remote-debugging-port=9222 - 用
playwright或undetected-chromedriver3连接调试端口(注意:Camoufox 不支持标准 CDP 全功能,Page.navigate和Network.getResponseBody可用,但Emulation.setDeviceMetricsOverride会失败) - 不要依赖
driver.get_cookies()——它返回的是过期或无效的cf_clearance,得用driver.execute_cdp_cmd("Network.getCookies", {"urls": ["https://target.com"]})拿实时值
为什么用 Camoufox 还是被 Cloudflare 拦在“Checking your browser”页?
最常见原因是没关掉自动化检测特征。Camoufox 默认启用 automation: true,这会让 navigator.webdriver 返回 true,而 Cloudflare 现在对这个字段做硬性拦截——哪怕你 canvas/webgl 指纹再真实也没用。
必须在 camoufox.cfg 里加这一行:
{"automation": false}
另外两个高发点:
- 启动时没禁用扩展:Camoufox 加载了默认扩展(如 uBlock Origin),某些扩展会注入额外 JS,改变
performance.memory或触发异常事件监听器 - 没等 JS 完全执行完就取 HTML:用
driver.page_source前,必须等document.readyState === "complete"且window.cfClearance存在,否则拿到的是跳转页源码 - 同一台机器反复启停 Camoufox 实例,
localStorage里的设备 ID 没清,导致 fingerprint hash 稳定不变——Cloudflare 认为这是脚本行为
和 Playwright / Selenium 比,Camoufox 的实际优势在哪?
不是“更难被识别”,而是“更可控的指纹扰动粒度”。Playwright 的 chromium.launch(..., args=["--disable-blink-features=AutomationControlled"]) 只能关掉 navigator.webdriver,但 Canvas、WebGL、Audio 等指纹仍由 Chromium 内核决定,你没法指定显卡驱动字符串或音频采样偏差值。
Camoufox 把这些都做成可配置项,比如:
-
"canvas_noise": 0.0023—— 控制 canvas getImageData() 的随机噪声强度 -
"webgl_renderer": "ANGLE (AMD, AMD Radeon RX 6700 XT Direct3D11 vs_5_0 ps_5_0)"—— 直接伪造 WebGL 渲染器字符串 -
"audio_latency": 12.7—— 模拟不同声卡的音频处理延迟
但代价是启动慢(平均比 Playwright 慢 1.8 秒)、内存占用高(单实例常驻 400MB+)、不支持 headless 模式(必须开 GUI 窗口或用 Xvfb)。如果你只是爬基础级 Cloudflare(5秒盾),用 Playwright + 正确参数就够了;只有遇到进阶级行为检测(比如鼠标轨迹采样、Canvas 点击热区分析)时,才值得上 Camoufox。


















