Langkau ke kandungan
Anti-PengesananStealth5 credits

stealth_mode

Pintas sistem pengesanan bot dengan teknik anti-pengesanan lanjutan termasuk rawakan cap jari, simulasi gelagat manusia dan konfigurasi pelayar senyap.

Kes Penggunaan

Tapak E-dagang Terlindung

Scrape data produk daripada tapak dengan perlindungan Cloudflare, DataDome atau PerimeterX

Platform Media Sosial

Ekstrak data awam daripada platform dengan pengesanan bot yang canggih

Tapak Data Kewangan

Akses data pasaran, harga saham dan maklumat kewangan daripada sumber terlindung

API Berhad Kadar

Pintas penghadan kadar agresif dengan putaran cap jari

Kandungan Disekat Geografi

Akses kandungan terhad rantau melalui proksi yang anda bekalkan

Pengujian Keselamatan Tinggi

Uji sistem anti-bot anda sendiri dengan teknik pengelakan lanjutan

Endpoint

POST/api/v1/tools/stealth_mode
Auth Required
1 req/s pada pelan Free
5 credits

Parameters

NameTypeRequiredDefaultDescription
operation
stringOptionalconfigure
Operasi senyap untuk dilaksanakan: scrape, configure, create_context, create_page, get_stats, atau cleanup. `scrape` ialah laluan satu panggilan — ia mencipta konteks senyap, menavigasi ke `url`, memulangkan `formats` yang diminta, dan meruntuhkan konteks itu, semuanya dalam satu panggilan yang dicaj. create_context diikuti create_page ialah semakan navigasi dan cabaran: `create_page` memuatkan `urlToTest`, melaporkan status, tajuk dan sebarang halaman cabarannya, dan menutup halaman itu sebelum panggilan kembali, jadi tiada apa-apa padanya dibawa ke panggilan seterusnya. Untuk kerja merentas beberapa panggilan pada satu halaman (log masuk, kemudian baca; klik, kemudian baca), gunakan [browser_session](/docs/api-reference/tools/browser-session) dengan `stealth: true`. `configure` hanya mengesahkan `stealthConfig` dan memulangkannya dengan nilai lalai diisi, bersama satu `note` — ia tidak menyimpan apa-apa, jadi hantar `stealthConfig` pada setiap panggilan `scrape` atau `create_context` yang perlu menggunakannya.
Example: create_context
stealthConfig
objectOptional-
Pilihan senyap terperinci. Kunci: level (basic | medium | advanced, lalai medium), randomizeFingerprint, hideWebDriver, blockWebRTC, spoofTimezone, randomizeHeaders, useRandomUserAgent, simulateHumanBehavior (semua boolean, lalai true), customUserAgent, customViewport ({ width 800-1920, height 600-1080 }), locale (lalai "en-US"), dan timezone. Konfigurasi ini terpakai pada panggilan yang membawanya sahaja dan tidak diingati antara panggilan. Pada enjin `camoufox`, `customUserAgent` dan `customViewport` tidak digunakan, `locale` ditetapkan semasa pelayar dilancarkan, dan di belakang proksi `locale` serta `timezone` mengikut IP keluar; `scrape` dan `create_context` melaporkan setiap satu daripadanya dalam `warnings`.
Example: {"level": "advanced", "blockWebRTC": true}
engine
stringOptionalplaywright
Enjin pelayar: "playwright" (lalai) atau "camoufox" (berasaskan Firefox, anti-pengesanan lebih kukuh; tersedia hanya di tempat ia dipasang pada backend).
Example: camoufox
contextId
stringOptional-
ID konteks pelayar yang dikembalikan oleh panggilan create_context. Hantar ia ke create_page untuk membuka halaman dalam konteks senyap tersebut.
Example: ctx_ab12cd34ef56
urlToTest
stringOptional-
create_page: URL untuk dinavigasi dan disemak. Halaman ditutup sebelum panggilan kembali.
Example: https://protected-site.com
url
stringOptional-
URL untuk di-scrape. Diperlukan untuk `operation: "scrape"` dan diabaikan oleh operasi lain, yang menggunakan `urlToTest` sebaliknya.
Example: https://protected-site.com/product/42
formats
arrayOptional["markdown"]
Format yang dipulangkan oleh `operation: "scrape"`: `markdown`, `html`, `text`, `links`, `metadata`, atau `screenshot`. Tangkapan skrin dipulangkan sebagai URI sumber `crawlforge://screenshot/{id}` dan bukan base64 sebaris, dan titik akhir REST ini menyalurkan URI itu tanpa menyelesaikannya, jadi buat masa ini `screenshot` hanya boleh digunakan daripada pelayan MCP CrawlForge yang mampu membaca sumber tersebut.
Example: ["markdown", "links"]
wait_for
numberOptional-
Tempoh menunggu tambahan selepas halaman dimuatkan, dalam milisaat (0-30000). Gunakannya untuk kandungan yang dipaparkan selepas DOMContentLoaded — larian senyap sudah pun berhenti seketika seperti manusia, jadi mulakan dengan nilai kecil.
Example: 2000
verbose
booleanOptionalfalse
Pulangkan cap jari penuh yang dijana oleh create_context dan bukan ringkasan. Berguna semasa menyahpepijat sebab sasaran masih mengesan pelayar.
Example: false
respect_robots
booleanOptionaltrue
Hormati robots.txt tapak sasaran. Jika ditinggalkan, nilai lalai yang patuh (`true`) terpakai: URL yang dilarang untuk `CrawlForge` ditolak sebelum sebarang pelayar dilancarkan dan titik akhir ini tidak mengenakan sebarang caj untuknya, dan setiap navigasi diperiksa dengan cara yang sama. Peraturan itu dipadankan dengan token produk `CrawlForge` walaupun pelayar senyap memaparkan User-Agent yang dirawakkan, jadi arahan `User-agent: CrawlForge` daripada pemilik tapak turut mengikat trafik senyap. Tetapkan kepada `false` hanya untuk sasaran yang anda mempunyai perjanjian sendiri dengannya — respons kemudiannya membawa entri `warnings` dan tindakan mengatasi itu direkodkan pada API key anda.
Example: true
max_inline_chars
numberOptional40000
Hasil terbesar yang dikembalikan sebaris, dalam aksara JSON-nya (1,000-10,000,000). Melebihinya, respons membawa `preview` (`max_inline_chars` aksara pertama medan teks utama hasil), `result_handle`, `total_chars`, `truncated: true` dan `expires_at`, dan [read_result](/docs/api-reference/tools/read-result) membaca selebihnya dengan 1 credit setiap panggilan. Hasil tersimpan disimpan selama 1 jam. Terpakai pada operasi `scrape`.
Example: 40000
redact_pii
boolean | objectOptionalfalse
Buang data peribadi daripada teks yang dikembalikan oleh panggilan ini, sebelum hasilnya disimpan atau dihantar balik. Terpakai pada `operation: "scrape"`, satu-satunya operasi yang mengembalikan halaman; operasi simpan kira tidak mempunyai teks untuk disunting. `true` ialah singkatan bagi `{ mode: "fast" }` — keempat-empat kelas regex, bertag. Setiap kali anda meminta penyuntingan, respons membawa `redaction: { entities, count, mode }` di dalam `data`, walaupun tiada apa-apa yang sepadan (`count: 0`), jadi "tiada apa-apa ditemui" tidak pernah disalah anggap sebagai "parameter itu diabaikan"; kelas tanpa padanan ditinggalkan dan bukan dilaporkan sebagai `0`. Penyuntingan berjalan **sebelum** hasil itu disimpan, jadi hasil besar yang dibaca kemudian dengan [read_result](/docs/api-reference/tools/read-result) sudah pun disunting. Dua batas yang disengajakan: alamat (`url`, `link`, `href`, `canonical_url`) tidak pernah disunting, dan kiraan yang diperoleh daripada teks (`content_length`, `word_count`, `character_count`) menggambarkan teks itu sebagaimana ia diekstrak, sebelum penyuntingan.
Example: true

Operasi dan kosnya

5 credits membayar kerja pelayar; operasi pentadbiran berharga 1 credit setiap satu. Jadi scrape satu panggilan berharga 5 credits, manakala laluan create_context → create_page → cleanup berharga 11.

scrape — 5 credits
Satu panggilan: mencipta konteks senyap, menavigasi ke url, memulangkan formats yang diminta bersama tajuk halaman dan URL akhir, lalu meruntuhkan konteks itu. Mulakan di sini.
create_context — 5 credits
Membuka konteks senyap yang boleh diguna semula dan memulangkan contextId-nya. Gunakannya apabila beberapa halaman perlu berkongsi satu cap jari dan satu simpanan kuki.
create_page — 5 credits
Menavigasi ke urlToTest di dalam contextId sedia ada. Halaman ditutup apabila panggilan selesai; konteks kekal.
configure — 1 credit
Mengesahkan stealthConfig dan memulangkannya dengan nilai lalai diisi, bersama satu note yang menyatakannya. Tiada apa-apa disimpan dan tiada panggilan seterusnya mengambilnya — hantar stealthConfig pada setiap panggilan scrape atau create_context. Tiada pelayaran berlaku, jadi ini dicaj sebagai kerja pentadbiran.
get_stats — 1 credit
Memulangkan activeContexts, totalFingerprintsSaved, browserRunning, humanBehaviorActive dan proxyStatus (enabled, currentProxy, totalProxies) bagi bahagian belakang. Tiada pelayaran.
cleanup — 1 credit
Meruntuhkan setiap konteks yang terbuka pada bahagian belakang. Tiada pelayaran, jadi melepaskan apa yang anda buka tidak pernah dicaj pada kadar pelayar.

Apa yang mod senyap tidak lakukan

Dari mana trafik senyap keluar

Pemilihan enjin

stealth_mode menyokong dua enjin pelayar asas. Pilih berdasarkan kesukaran pengesanan tapak sasaran anda.

Playwright (lalai)
Automasi Chromium yang teruji dengan pemalam senyap. Terbaik untuk: kebanyakan tapak, pelaksanaan pantas, alat penyahpepijatan yang luas. Jejak sumber lebih ringan.
Camoufox
Fork berasaskan Firefox yang dikukuhkan untuk pengelakan anti-bot. Terbaik untuk: pengesanan bot agresif (Cloudflare Turnstile, DataDome, mod keras PerimeterX). Penggunaan memori lebih tinggi; permulaan sedikit lebih perlahan.

Contoh enjin

terminalBash
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 '{
    "operation": "create_context",
    "engine": "camoufox",
    "stealthConfig": {
      "level": "advanced"
    }
  }'

Tahap Senyap

Basic (Terpantas)
Terbaik untuk tapak dengan pengesanan bot minimum. Rawakan User-Agent, manipulasi pengepala asas, pengendalian kuki, kelewatan ~1-2 saat.
Medium (Disyorkan)
Senyap dan prestasi yang seimbang. Rawakan cap jari penuh, penyamaran cap jari Canvas/WebGL, penipuan zon waktu dan bahasa, penatalan dan pergerakan seperti manusia, kelewatan ~3-5 saat.
Advanced (Paling Perlahan)
Senyap maksimum untuk tapak yang sangat terlindung. Semua ciri medium serta: pengelakan pengesanan WebDriver, pengecaman cap jari TLS lanjutan, simulasi pergerakan tetikus, corak klik rawak, kelewatan ~8-12 saat.

Contoh Permintaan

terminalBash
# 1. Create a stealth browser context
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 '{
    "operation": "create_context",
    "engine": "playwright",
    "stealthConfig": {
      "level": "advanced",
      "randomizeFingerprint": true,
      "blockWebRTC": true
    }
  }'

# 2. Open a page in that context (use the contextId from step 1)
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 '{
    "operation": "create_page",
    "contextId": "ctx_ab12cd34ef56",
    "urlToTest": "https://protected-site.com"
  }'

Contoh Respons

200 OK1,200ms
{
"success": true,
"data": {
"operation": "create_context",
"contextId": "ctx_ab12cd34ef56",
"engine": "playwright",
"stealthConfig": {
"level": "advanced",
"randomizeFingerprint": true,
"hideWebDriver": true,
"blockWebRTC": true,
"spoofTimezone": true,
"locale": "en-US"
},
"message": "Stealth context created"
},
"credits_used": 5,
"credits_remaining": 995,
"processing_time": 1200
}
Field Descriptions
data.contextIdHantar ia ke create_page untuk membuka halaman dalam konteks senyap ini
data.operationOperasi senyap yang telah dilaksanakan
data.stealthConfigKonfigurasi senyap terlerai yang digunakan pada konteks
credits_used5 credits untuk kerja pelayar (scrape, create_context, create_page); 1 credit untuk operasi pentadbiran
processing_timeMasa untuk memulakan konteks senyap (ms)

Pengendalian Ralat

Runtime pelayar tidak dikonfigurasikan (503 TOOL_NOT_AVAILABLE)

Mod senyap memerlukan runtime pelayar. Apabila bahagian belakang pelaksanaan terhos tidak dikonfigurasikan, panggilan memulangkan 503 serta-merta dan tiada credits dicaj.

Had kadar dilampaui (429 Too Many Requests)

Anda telah melampaui had kadar pelan anda. Tunggu sebentar atau naik taraf pelan anda untuk had yang lebih tinggi.

Operasi Tidak Sah (400 Bad Request)

Operasi mestilah salah satu daripada: scrape, configure, create_context, create_page, get_stats, atau cleanup.

Bahagian belakang pelaksanaan tamat masa (504 MCP_UPSTREAM_TIMEOUT)

Sasaran tidak selesai dimuatkan dalam bajet masa bahagian belakang pelaksanaan. Laman yang dilindungi ketat ialah punca lazim. Kegagalan tidak dicaj.

Disekat oleh robots.txt (502 TOOL_ERROR)

robots.txt sasaran melarang URL ini untuk CrawlForge, jadi tiada pelayar dilancarkan dan tiada apa-apa dicaj. Tetapkan respect_robots: false untuk mengatasinya jika anda mempunyai perjanjian sendiri dengan sasaran — tindakan mengatasi itu direkodkan pada API key anda. Tindakan mengatasi itu tidak sampai kepada hos yang berada dalam senarai penarikan diri kekal CrawlForge, yang ditolak tanpa mengira nilai respect_robots.

Kos Credit

5 credits
5 credits setiap operasi pelayar
5 credits membayar kerja pelayar — scrape, create_context, atau create_page — tidak kira tahap senyap. Operasi pentadbiran configure, get_stats dan cleanup tidak melayari apa-apa dan berharga 1 credit setiap satu, jadi scrape satu panggilan berharga 5 credits keseluruhannya.

Apa yang Disertakan:

Rawakan cap jari (semua tahap)

Simulasi gelagat manusia

Teknik anti-pengesanan

Pengelakan pengesanan WebDriver (medium+)

Penyamaran Canvas/WebGL (medium+)

Pengecaman cap jari TLS lanjutan (advanced)

Cadangan Pelan:

Pelan Free: 1,000 credits percubaan sekali sahaja = 200 permintaan senyap

Pelan Hobby: 5,000 credits = 1,000 permintaan senyap ($19/mo)

Pelan Professional: 100,000 credits = 20,000 permintaan senyap ($99/mo)

Alat Berkaitan