网淘吧来吧,欢迎您!

Camoufox Stealth Browser技能使用说明

2026-04-01 新闻来源:网淘吧 围观:19
电脑广告
手机广告

Camoufox 隐身浏览器 🦊

C++ 级别使用 Camoufox 进行反机器人规避——这是一个自定义的 Firefox 分支,其隐身补丁直接编译到浏览器本身,而不是通过 JavaScript 后期附加。

为何 Camoufox 优于基于 Chrome 的解决方案

方法检测级别工具
Camoufox(此项技能)C++ 编译的补丁无法检测的指纹内置于浏览器中
undetected-chromedriverJS 运行时补丁可通过时序分析检测到
puppeteer-stealthJS 注入补丁在页面加载后应用 = 可检测
playwright-stealthJS 注入相同的局限性

Camoufox 在源代码级别修补 Firefox— WebGL、Canvas、AudioContext指纹是真正被伪造的,而非通过JavaScript覆盖进行屏蔽,后者可被反爬虫系统检测到。

Camoufox Stealth Browser

核心优势

  1. C++级隐身— 指纹伪造功能编译进浏览器,而非使用JS技巧
  2. 容器隔离— 在distrobox中运行,保持您的主机系统纯净
  3. 双工具策略— Camoufox用于浏览器,curl_cffi用于纯API场景(无浏览器开销)
  4. 基于Firefox— 比Chrome更难被识别(多数机器人程序都使用Chrome)

适用场景

  • 标准Playwright/Selenium被拦截时
  • 网站显示Cloudflare验证或“正在检查您的浏览器”时
  • 需要爬取Airbnb、Yelp等受保护网站时
  • 当puppeteer-stealthundetected-chromedriver失效时
  • 您需要的是真正的隐蔽性,而非JS补丁

工具选择

工具层级最佳适用场景
CamoufoxC++补丁所有受保护站点 - Cloudflare, Datadome, Yelp, Airbnb
curl_cffiTLS欺骗仅限API端点 - 无需JS,速度极快

快速开始

所有脚本运行于pyboxdistrobox以实现隔离。

⚠️请使用python3.14明确指定- pybox可能安装了多个Python版本,且各版本安装的包可能不同。

1. 设置(首次使用)

# Install tools in pybox (use python3.14)
distrobox-enter pybox -- python3.14 -m pip install camoufox curl_cffi

# Camoufox browser downloads automatically on first run (~700MB Firefox fork)

2. 获取受保护页面

浏览器方式(Camoufox):

distrobox-enter pybox -- python3.14 scripts/camoufox-fetch.py "https://example.com" --headless

仅限API方式(curl_cffi):

distrobox-enter pybox -- python3.14 scripts/curl-api.py "https://api.example.com/endpoint"

架构

┌─────────────────────────────────────────────────────────┐
│                     OpenClaw Agent                       │
├─────────────────────────────────────────────────────────┤
│  distrobox-enter pybox -- python3.14 scripts/xxx.py         │
├─────────────────────────────────────────────────────────┤
│                      pybox Container                     │
│         ┌─────────────┐  ┌─────────────┐               │
│         │  Camoufox   │  │  curl_cffi  │               │
│         │  (Firefox)  │  │  (TLS spoof)│               │
│         └─────────────┘  └─────────────┘               │
└─────────────────────────────────────────────────────────┘

工具详情

Camoufox

  • 是什么:包含C++级别隐身补丁的自定义Firefox构建版本
  • 优点:最佳指纹规避能力,可自动通过Turnstile验证
  • 缺点:约700MB下载大小,基于Firefox
  • 最适合:所有受保护网站 - Cloudflare、Datadome、Yelp、Airbnb

curl_cffi

  • 是什么:具备浏览器TLS指纹伪装功能的Python HTTP客户端
  • 优点:无浏览器开销,速度极快
  • 缺点:无法执行JavaScript,仅适用于API端点
  • 最适合:已知API端点、移动应用逆向工程

重要:代理要求

数据中心IP(AWS、DigitalOcean)在Airbnb/Yelp上会=立即被屏蔽

您必须使用住宅或移动代理:

# Example proxy config
proxy = "http://user:pass@residential-proxy.example.com:8080"

请参阅references/proxy-setup.md了解代理配置。

行为提示

像Airbnb/Yelp这样的网站会进行行为分析。为了避免被检测到:

  1. 预热:不要直接访问目标URL。先访问主页,滚动页面,四处点击。
  2. 鼠标移动:注入随机的鼠标移动(Camoufox会处理这个)。
  3. 时间间隔:添加随机延迟(操作之间间隔2-5秒),不要使用固定的时间间隔。
  4. 会话粘性:在10-30分钟的会话中使用相同的代理IP,不要每个请求都更换。

无头模式警告

⚠️ 旧的--headless标志会被检测到。可选方案:

  1. 新无头模式:使用headless="new"(Chrome 109+版本)
  2. Xvfb:在虚拟显示中运行有头浏览器
  3. 有头模式:如果可以,请直接运行有头模式(最可靠)
# Xvfb approach (Linux)
Xvfb :99 -screen 0 1920x1080x24 &
export DISPLAY=:99
python scripts/camoufox-fetch.py "https://example.com"

故障排除

问题解决方案
立即出现"访问被拒绝"使用住宅代理
Cloudflare验证循环尝试使用Camoufox替代Nodriver
浏览器在pybox中崩溃安装缺失的依赖项:sudo dnf install gtk3 libXt
TLS指纹被阻止使用curl_cffi并设置impersonate="chrome120"
出现Turnstile复选框验证添加鼠标移动,增加等待时间
ModuleNotFoundError: camoufox使用python3.14而非python或者python3
greenlet段错误(退出代码 139)Python 版本不匹配 - 请明确使用python3.14明确指定
libstdc++.so.6错误NixOS 库路径问题 - 请在 pybox 中使用python3.14在 pybox 中

Python 版本问题(NixOS/pybox)

pybox容器可能包含多个具有独立 site-packages 的 Python 版本:

# Check which Python has camoufox
distrobox-enter pybox -- python3.14 -c "import camoufox; print('OK')"

# Wrong (may use different Python)
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py ...

# Correct (explicit version)
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py ...

如果遇到段错误或导入错误,请始终明确使用python3.14明确指定。

示例

抓取 Airbnb 房源信息

distrobox-enter pybox -- python3.14 scripts/camoufox-fetch.py \
  "https://www.airbnb.com/rooms/12345" \
  --headless --wait 10 \
  --screenshot airbnb.png

抓取 Yelp 商家信息

distrobox-enter pybox -- python3.14 scripts/camoufox-fetch.py \
  "https://www.yelp.com/biz/some-restaurant" \
  --headless --wait 8 \
  --output yelp.html

使用 TLS 欺骗进行 API 抓取

distrobox-enter pybox -- python3.14 scripts/curl-api.py \
  "https://api.yelp.com/v3/businesses/search?term=coffee&location=SF" \
  --headers '{"Authorization": "Bearer xxx"}'

会话管理

持久会话允许在多次运行中重用已认证状态,无需重新登录。

快速开始

# 1. Login interactively (headed browser opens)
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py \
  --profile airbnb --login "https://www.airbnb.com/account-settings"

# Complete login in browser, then press Enter to save session

# 2. Reuse session in headless mode
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py \
  --profile airbnb --headless "https://www.airbnb.com/trips"

# 3. Check session status
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py \
  --profile airbnb --status "https://www.airbnb.com"

标志参数

参数说明
--profile 名称会话存储的命名配置文件(必需)
--login交互式登录模式 - 开启带界面浏览器
--headless在无头模式下使用已保存会话
--status检查会话是否有效
--export-cookies 文件将Cookie导出为JSON文件备份
--import-cookies 文件从JSON文件导入Cookie

存储

  • 存储位置: ~/.stealth-browser/profiles/<名称>/
  • 权限设置:目录700文件600
  • 配置文件名称:字母、数字、_,-仅限(1-63个字符)

Cookie 处理

  • 保存:浏览器配置文件中存储的所有域的所有 Cookie
  • 恢复:仅使用与目标 URL 域匹配的 Cookie
  • 单点登录:如果被重定向到 Google/认证域,则重新认证一次并更新配置文件

登录墙检测

脚本使用多种信号检测会话过期:

  1. HTTP 状态:401、403
  2. URL 模式: /login,/signin,/auth
  3. 标题模式:"登录"、"登录"等。
  4. 内容关键词:"验证码"、"验证"、"身份验证"
  5. 表单检测:密码输入字段

如果在--headless模式下检测到,您将看到:

🔒 Login wall signals: url-path, password-form

使用--login重新运行以刷新会话。

远程登录(SSH)

由于--login需要一个可见的浏览器,您需要显示转发:

X11 转发(首选):

# Connect with X11 forwarding
ssh -X user@server

# Run login (opens browser on your local machine)
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py \
  --profile mysite --login "https://example.com"

VNC 替代方案:

# On server: start VNC session
vncserver :1

# On client: connect to VNC
vncviewer server:1

# In VNC session: run login
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py \
  --profile mysite --login "https://example.com"

安全注意事项

⚠️Cookie 是凭证。像对待密码一样对待配置文件目录:

  • 配置文件目录应设置为chmod 700(仅所有者可见)
  • Cookie 导出具有chmod 600
  • 请勿通过不安全的渠道分享配置文件或导出的 Cookie
  • 建议对备份进行加密

局限性

局限性原因
localStorage/sessionStorage 未被导出请改用浏览器配置文件(自动处理)
IndexedDB 不可移植存储在浏览器配置文件中,而非 Cookie 导出
不支持并行访问配置文件v1 版本无文件锁定功能;请每个配置文件使用单一进程

参考文档

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第393623名访客 今日有1篇新文章/评论