Camoufox 反检测浏览器:2 条命令跑通,爬虫 5 分钟告别反爬拦截
【免费下载链接】camoufox🦊 Anti-detect browser项目地址: https://gitcode.com/gh_mirrors/ca/camoufox
爬虫又被拦了,这次 IP 还是干净的?说明反爬盯上了浏览器本身:webdriver 为真、字体、canvas,凡是能做指纹的全暴露着。Camoufox 是一款反检测浏览器,每次启动都随机生成一台完整的“真实设备”,在 C++ 层完成伪装,页面读到的是原生值,不是你注入的 JS 补丁。
🦊 Camoufox 反检测能力清单
- 一次伪造 navigator、屏幕、WebGL、字体、语音、麦克风与相机、音频采样率,HTTP 请求头和 navigator 汇报的值永远一致
- Playwright 经由 Juggler 协议驱动,自动化代码跑在隔离世界,
navigator.webdriver为假,页面看不到痕迹 humanize=True让鼠标回放 2356 条真人录制轨迹,连停顿和过冲的速度都按录像走NewContext()给每个上下文独立身份,一个浏览器同时挂多台“设备”、多个出口 IP
最快跑通命令:从安装到首次启动
需要 Python 3.10 以上,Windows、macOS、Linux 都能跑。安装并预下载浏览器:
pip install -U "camoufox[geoip]" camoufox fetchfetch会装好配套浏览器构建和指纹模型;跳过它,首次启动也会自动下载。Node 项目则npm install camoufox playwright-core,再执行npx camoufox fetch。
指纹怎么变的:3 句话原理速览
先由 fpgen 这个真实流量模型抽出一台设备:什么系统、多大屏幕、哪块 GPU,coherence.py 会把真实世界不存在的组合直接扔掉。设备随后以CAMOU_CONFIG环境变量传入浏览器,一批补丁在 C++ 里应答,toString()、worker、iframe 读到的都是同一个值。最后 Juggler 给 Playwright 一份页面副本,真实页面看不到任何一个 getter 被触发。
最小代理示例:让出口 IP 和指纹对上
from camoufox.sync_api import Camoufox with Camoufox( proxy={"server": "http://proxy.example.com:8080", "username": "u", "password": "p"}, geoip=True, ) as browser: page = browser.new_page() page.goto("https://example.com")geoip=True会通过代理查出出口 IP,再把时区、语言、地理位置和 WebRTC IP 全部对齐——指纹说上海,IP 也落在上海。直接把 IP 字符串传给geoip可跳过查询。返回的是标准 PlaywrightBrowser,你现有的脚本只需换启动那一行。
3 个高频踩坑:现象、原因与解法
- 启动长时间卡住,共享 CI 上直接失败:浏览器构建或指纹模型还没下载,GitHub API 限流又低。先跑
camoufox fetch;CI 上设置GITHUB_TOKEN提高限额。 - 弹出 IPv6 相关的
LeakWarning:机器有公网 IPv6,且定位到和身份不同的地区。挂上代理并开geoip=True,浏览器会自动按 IPv4-only 网络行事。 - Linux 服务器没有图形界面:用
headless="virtual"在独立 Xvfb 里跑有头浏览器(需装Xvfb和setpriv);要 GPU 渲染用headless="virtual-gpu"。调试时camoufox test能直接开一个带 Playwright 检查器的浏览器。
延伸阅读:接下来该看什么
全部启动参数和camoufox子命令见 python/README.md,每项 C++ 级伪装对应 browser/patches/ 下的一个文件,出问题时便于逐项排查。这两处看完,就可以去改现有 Playwright 脚本里的启动代码了。
【免费下载链接】camoufox🦊 Anti-detect browser项目地址: https://gitcode.com/gh_mirrors/ca/camoufox
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考