以下是实现真实浏览器指纹的主流方案:
---
## 🔥 推荐方案(按效果排序)
### 1. Camoufox(最强推荐)⭐⭐⭐⭐⭐
Camoufox 是最现代、有效且面向未来的开源反检测浏览器解决方案,性能超过大多数商业反检测浏览器。
这个 Python 库包装了 Playwright API,自动生成并注入独特的设备特征(OS、CPU 信息、navigator、字体、headers、屏幕尺寸、视口大小、WebGL、插件等)。它在底层使用 BrowserForge 生成模拟真实流量设备特征统计分布的指纹。
```bash
pip install -U camoufox[geoip]
python -m camoufox fetch
```
```python
from camoufox import Camoufox
with Camoufox(
os="windows", # 指定操作系统
headless=True,
geoip=True, # 自动匹配代理地理位置
humanize=True # 模拟人类行为
) as browser:
page = browser.new_page()
page.goto("https://bot.sannysoft.com")
```
Camoufox 使用 BrowserForge 轮换设备信息(如屏幕、操作系统和硬件),模拟真实流量中设备特征的统计分布。此外,Camoufox 使用自然鼠标移动算法来模拟正常用户行为。所有 Playwright 内部的 Page Agent JavaScript 都被沙箱隔离,使页面无法检测到 Playwright 的存在。数据在 C++ 实现层被拦截,使更改无法通过 JavaScript 检测。
---
### 2. fingerprint-suite(Apify 开发)⭐⭐⭐⭐
fingerprint-generator 生成真实浏览器指纹,影响 HTTP headers 和浏览器 JS API;fingerprint-injector 将浏览器指纹注入到 Playwright 或 Puppeteer 管理的浏览器实例中。
```bash
npm install fingerprint-injector fingerprint-generator playwright
```
```javascript
import { chromium } from 'playwright';
import { newInjectedContext } from 'fingerprint-injector';
const browser = await chromium.launch({ headless: false });
const context = await newInjectedContext(browser, {
fingerprintOptions: {
devices: ['mobile'],
operatingSystems: ['ios'],
},
newContextOptions: {
geolocation: { latitude: 51.50853, longitude: -0.12574 },
},
});
const page = await context.newPage();
```
---
### 3. playwright-with-fingerprints ⭐⭐⭐
这个库允许你更改浏览器指纹并使用增强匿名性的 playwright 自动化框架。浏览器指纹是一种通过浏览器属性组合来识别用户的技术,如字体、分辨率、插件列表、navigator 属性等。使用此包替换指纹后,网站将无法从其他用户中识别你,因为所有这些属性和 API 调用结果都将被替换为真实设备的值。
```bash
npm install playwright-with-fingerprints
```
```javascript
const { plugin } = require('playwright-with-fingerprints');
const fingerprint = await plugin.fetch('', {
tags: ['Microsoft Windows', 'Chrome'],
});
plugin.useFingerprint(fingerprint);
const browser = await plugin.launch();
const page = await browser.newPage();
```
---
### 4. BrowserForge(Python 指纹生成器)⭐⭐⭐
BrowserForge 是一个浏览器 header 和指纹生成器,模拟真实网络流量中不同浏览器、操作系统和设备的频率分布。它是 Apify fingerprint-suite 的 Python 重新实现,使用贝叶斯生成网络来模拟实际网络流量。
```bash
pip install browserforge[all]
python -m browserforge update
```
```python
from browserforge.fingerprints import FingerprintGenerator
from browserforge.headers import HeaderGenerator
# 生成指纹
fg = FingerprintGenerator()
fingerprint = fg.generate(
browser='chrome',
os='windows',
device='desktop'
)
# 生成 headers
hg = HeaderGenerator()
headers = hg.generate(browser='chrome')
```
> ⚠️ BrowserForge 中的指纹注入已被弃用,请改用 Camoufox。
---
### 5. Patchright ⭐⭐⭐
Patchright 是 Playwright 的直接替代品,它对默认 Playwright 启动配置进行了一些调整,使其不可被检测。
```bash
pip install patchright
patchright install chromium
```
```python
from patchright.async_api import async_playwright
async with async_playwright() as p:
browser = await p.chromium.launch(channel="chrome", headless=False)
page = await browser.new_page()
await page.goto("https://bot.sannysoft.com")
```
---
## 📊 指纹组成要素
| 类别 | 属性 |
|------|------|
| **Navigator** | userAgent, platform, language, hardwareConcurrency, deviceMemory |
| **Screen** | width, height, colorDepth, pixelRatio |
| **WebGL** | vendor, renderer, extensions |
| **Canvas** | 渲染指纹 |
| **Audio** | AudioContext 指纹 |
| **Fonts** | 系统字体列表 |
| **时区** | timezone, locale |
| **插件** | plugins, mimeTypes |
---
## 🎯 最佳实践
保持指纹一致性,确保所有浏览器特征与你选择的配置文件一致——user agent、视口大小、时区、语言设置和 API 响应必须全部匹配。使用基于会话的方法,在多个页面访问中保持相同的指纹,避免在同一会话中混合来自不同浏览器类型的特征。
**推荐组合方案:**
1. **最强方案**: Camoufox + 住宅代理 + GeoIP 匹配
2. **JS 方案**: playwright-extra + fingerprint-suite + 代理轮换
3. **轻量方案**: Patchright + 基础指纹伪装