Langkau ke kandungan
Panduan Lanjutan

Teknik Scraping Stealth

Pintas sistem pengesanan anti-bot dengan cap jari pelayar lanjutan, putaran IP, penyamaran user-agent, dan strategi pengendalian CAPTCHA.

1. Menggunakan Alat stealth_mode

Alat stealth_mode secara automatik menggunakan teknik anti-pengesanan termasuk rawakan cap jari, penyamaran WebRTC, dan hingar kanvas.

Asas (3 credits)
Putaran user-agent, penyamaran pengepala asas

Guna untuk: Tapak perlindungan rendah, scraper mudah

Sederhana (3 credits)
Asas + rawakan cap jari, perlindungan kebocoran WebRTC

Guna untuk: Kebanyakan tapak komersial, perlindungan sederhana

Lanjutan (3 credits)
Sederhana + hingar kanvas, penyamaran WebGL, rawakan zon waktu

Guna untuk: Tapak perlindungan tinggi, Cloudflare, Akamai

Scraping Stealth Asas

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
  }'

Lanjutan: Stealth + Proksi + Pengepala Tersuai

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. Cap Jari Pelayar

Sistem anti-bot menggunakan cap jari pelayar untuk mengesan pelayar automatik. Rawakkan cap jari untuk mengelakkan pengesanan.

User-Agent
Versi pelayar, OS, jenis peranti
Cap Jari Kanvas
Tandatangan pemaparan yang unik
WebGL
Vendor/pemapar kad grafik
WebRTC
Kebocoran alamat IP setempat
Resolusi Skrin
Dimensi paparan
Zon Waktu & Lokal
Penunjuk lokasi geografi
Fon
Senarai fon yang dipasang
Pemalam
Sambungan pelayar yang dikesan

3. Putaran IP & Proksi

Gunakan proksi berputar untuk mengagihkan permintaan merentas alamat IP yang berbeza.

  • Proksi Pusat Data
    • ✅ Pantas (latensi 50-150ms)
    • ✅ Murah ($1-5/GB)
    • ❌ Mudah dikesan
    • ❌ Kadar haram lebih tinggi
    • Terbaik untuk: Tapak perlindungan rendah, scraping isi padu tinggi
  • Proksi Kediaman (Disyorkan)
    • ✅ IP pengguna sebenar (sukar dikesan)
    • ✅ Kadar haram rendah
    • ⚠️ Lebih perlahan (latensi 200-500ms)
    • ⚠️ Mahal ($5-15/GB)
    • Terbaik untuk: Tapak perlindungan tinggi, e-dagang, media sosial
  • Proksi Mudah Alih
    • ✅ Kadar kejayaan tertinggi (IP 4G/5G)
    • ✅ Hampir tidak dapat dikesan
    • ❌ Sangat mahal ($50-100/GB)
    • ❌ Paling perlahan (latensi 300-1000ms)
    • Terbaik untuk: Stealth maksimum, sasaran premium

Strategi Putaran 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. Pengendalian CAPTCHA

Strategi untuk menangani cabaran CAPTCHA.

  1. Elakkan Mencetuskan CAPTCHA
    • Gunakan mod stealth, putar IP, hormati had kadar, tambah lengah rawak (2-5 saat antara permintaan)
    • ✅ Strategi terbaik - pencegahan lebih mudah daripada penyelesaian
  2. Gunakan Perkhidmatan Penyelesaian CAPTCHA
    • Integrasikan dengan 2Captcha, Anti-Captcha, atau DeathByCaptcha ($1-3 setiap 1,000 CAPTCHA)
    • ⚠️ Menambah kos dan latensi (10-30 saat)
  3. Cari Sumber Data Alternatif
    • Cari API, suapan RSS, peta tapak, atau tapak rakan kongsi tanpa CAPTCHA
    • ✅ Penyelesaian jangka panjang yang paling boleh dipercayai
  4. Campur Tangan Manual
    • Baris gilirkan cabaran CAPTCHA untuk diselesaikan oleh pengendali manusia
    • ❌ Hanya berdaya maju untuk scraping isi padu rendah

Ringkasan Amalan Terbaik

  • Sentiasa mulakan dengan stealth_mode tahap "medium"
  • Gunakan proksi kediaman untuk tapak perlindungan tinggi
  • Putar proksi setiap 10-20 permintaan
  • Tambah lengah rawak antara permintaan (2-5 saat)
  • Padankan geolokasi dengan lokasi proksi (gunakan alat localization)
  • Hormati robots.txt dan had kadar
  • Pantau kadar haram dan laraskan strategi dengan sewajarnya

Langkah Seterusnya

Teruskan pembelajaran dengan lebih banyak panduan