CrawlForge
高级指南

隐身 抓取技术

通过高级浏览器指纹、IP 轮换、user-agent 伪造和 CAPTCHA 处理策略,绕过反爬虫检测系统。

使用 stealth_mode 工具
浏览器指纹
IP 轮换与代理
CAPTCHA 处理
法律声明: 请始终遵守 robots.txt 和网站服务条款。负责任地使用隐身技术,仅用于合法目的。违反服务条款或抓取受保护内容可能产生法律后果。

1. 使用 stealth_mode 工具

stealth_mode 工具会自动应用反检测技术,包括指纹随机化、WebRTC 伪造和 canvas 噪声。

基础(3 credits)
user-agent 轮换、基础请求头伪造

适用于:低防护站点、简单抓取器

中级(3 credits)
基础 + 指纹随机化、WebRTC 泄漏防护

适用于:大多数商业站点、中等防护

高级(3 credits)
中级 + canvas 噪声、WebGL 伪造、时区随机化

适用于:高防护站点、Cloudflare、Akamai

基础隐身抓取

3 credits

Bash
curl -X POST https://crawlforge.dev/api/v1/tools/stealth_mode \
  -H "X-API-Key: cf_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://protected-site.com",
    "level": "medium",
    "randomizeFingerprint": true
  }'

高级:隐身 + 代理 + 自定义请求头

Typescript
const response = await fetch('https://crawlforge.dev/api/v1/tools/stealth_mode', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://highly-protected-site.com',
    level: 'advanced',
    randomizeFingerprint: true,
    proxy: {
      server: 'http://proxy.example.com:8080',
      username: 'proxy_user',
      password: 'proxy_pass'
    },
    customHeaders: {
      'Accept-Language': 'en-US,en;q=0.9',
      'Accept-Encoding': 'gzip, deflate, br',
      'Referer': 'https://google.com',
      'Sec-Fetch-Dest': 'document',
      'Sec-Fetch-Mode': 'navigate',
      'Sec-Fetch-Site': 'none'
    },
    geolocation: {
      latitude: 40.7128,
      longitude: -74.0060,
      accuracy: 100
    },
    timezone: 'America/New_York',
    locale: 'en-US'
  }),
});

const data = await response.json();
console.log('Successfully bypassed protection');

2. 浏览器指纹

反爬虫系统利用浏览器指纹检测自动化浏览器。随机化指纹以规避检测。

User-Agent
浏览器版本、操作系统、设备类型
Canvas 指纹
独特的渲染签名
WebGL
显卡厂商/渲染器
WebRTC
本地 IP 地址泄漏
屏幕分辨率
显示器尺寸
时区与区域设置
地理位置指示信息
字体
已安装的字体列表
插件
检测到的浏览器扩展
CrawlForge 如何帮助: stealth_mode 工具会自动随机化所有这些指纹信号,使每次请求看起来都来自一个独特的真实浏览器。

3. IP 轮换与代理

使用轮换代理将请求分散到不同的 IP 地址。

  • 数据中心代理
    • ✅ 快速(50-150ms 延迟)
    • ✅ 便宜($1-5/GB)
    • ❌ 易被检测
    • ❌ 封禁率较高
    • 最适合:低防护站点、高并发抓取
  • 住宅代理(推荐)
    • ✅ 真实用户 IP(难以检测)
    • ✅ 封禁率低
    • ⚠️ 较慢(200-500ms 延迟)
    • ⚠️ 价格较高($5-15/GB)
    • 最适合:高防护站点、电商、社交媒体
  • 移动代理
    • ✅ 成功率最高(4G/5G IP)
    • ✅ 几乎无法检测
    • ❌ 非常昂贵($50-100/GB)
    • ❌ 最慢(300-1000ms 延迟)
    • 最适合:极致隐身、高价值目标

IP 轮换策略

Typescript
// Rotating proxy pool
const proxyPool = [
  'http://user:pass@proxy1.example.com:8080',
  'http://user:pass@proxy2.example.com:8080',
  'http://user:pass@proxy3.example.com:8080',
  'http://user:pass@proxy4.example.com:8080',
  'http://user:pass@proxy5.example.com:8080'
];

let currentProxyIndex = 0;

function getNextProxy() {
  const proxy = proxyPool[currentProxyIndex];
  currentProxyIndex = (currentProxyIndex + 1) % proxyPool.length;
  return proxy;
}

// Scrape with rotating proxies
async function scrapeWithRotatingProxy(url: string) {
  const proxy = getNextProxy();

  const response = await fetch('https://crawlforge.dev/api/v1/tools/stealth_mode', {
    method: 'POST',
    headers: {
      'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      url,
      level: 'medium',
      proxy: { server: proxy }
    }),
  });

  return await response.json();
}

// Scrape multiple URLs with different proxies
const urls = ['https://example.com/1', 'https://example.com/2', 'https://example.com/3'];
const results = await Promise.all(urls.map(scrapeWithRotatingProxy));

4. CAPTCHA 处理

应对 CAPTCHA 挑战的策略。

  1. 避免触发 CAPTCHA
    • 使用隐身模式、轮换 IP、遵守速率限制、添加随机延迟(请求之间间隔 2-5 秒)
    • ✅ 最佳策略——预防比破解更容易
  2. 使用 CAPTCHA 破解服务
    • 集成 2Captcha、Anti-Captcha 或 DeathByCaptcha(每 1,000 个 CAPTCHA $1-3)
    • ⚠️ 增加成本和延迟(10-30 秒)
  3. 寻找替代数据源
    • 寻找无需 CAPTCHA 的 API、RSS 订阅源、站点地图或合作站点
    • ✅ 长期最可靠的解决方案
  4. 人工介入
    • 将 CAPTCHA 挑战排队,交由人工操作员破解
    • ❌ 仅适用于低并发抓取
建议: 如果你持续遇到 CAPTCHA,说明抓取过于激进。在求助于 CAPTCHA 破解服务之前,先放慢速度、更频繁地轮换 IP,并使用更高的隐身级别。

最佳实践总结

  • 始终从 stealth_mode 的 "medium" 级别开始
  • 对高防护站点使用住宅代理
  • 每 10-20 次请求轮换一次代理
  • 在请求之间添加随机延迟(2-5 秒)
  • 使地理位置与代理位置匹配(使用 localization 工具)
  • 遵守 robots.txt 和速率限制
  • 监控封禁率并据此调整策略
下一步
继续学习更多指南
Credit 优化 →
降低抓取成本
stealth_mode 工具 →
完整 API 参考