puppeteer-extra-plugin-stealth Puppeteer için en popüler Anti-Detection paketi. npm'de hala haftalık 600K+ indirme alıyor. Ama Mart 2023'ten beri tek bir güncelleme yayınlanmadı. Versiyon 2.11.2 son release ve bu değişmeyecek: bakım durduruldu, GitHub issue'ları birikiyor ve Anti-Bot sistemleri çoktan ileriye gitti.
TL;DR: Stealth pluginleri, sayfa seviyesinde JavaScript override'ları ile tespit sinyallerini yamalıyor. 2026'da Cloudflare, Akamai ve DataDome gibi Anti-Bot sistemleri JavaScript'in ulaşamadığı sinyalleri kontrol ediyor: TLS fingerprint'leri, CDP protokol artefaktları ve motor seviyesinde rendering farkları. Çözüm daha iyi bir plugin değil. Farklı bir katman: protokol sızıntılarını gizleyen yamalı bir driver ya da fingerprint'leri motor seviyesinde yöneten yamalı bir tarayıcı.
Stealth pluginleri aslında ne yapıyor
puppeteer-extra-plugin-stealth, evaluateOnNewDocument ile çalışan 11 evasion modülü içeriyor. Her modül bir tespit yüzeyini yamalıyor:
| Modül | Ne yamalıyor |
|---|---|
webdriver |
navigator.webdriver = true değerini kaldırır |
chrome.runtime |
chrome.runtime objesini taklit eder |
chrome.csi / chrome.app |
Eksik Chrome API stub'larını ekler |
navigator.plugins |
Plugin dizisini taklit eder |
navigator.languages |
Dil ayarlarını override eder |
navigator.permissions |
Permission query davranışını düzeltir |
media.codecs |
Codec desteğini taklit eder |
sourceurl |
Enjekte edilen scriptlerdeki //# sourceURL gizler |
iframe.contentWindow |
Cross-origin iframe tespitini düzeltir |
webgl.vendor |
WebGL vendor/renderer stringlerini taklit eder |
user-agent-override |
Gerçekçi bir User-Agent başlığı ayarlar |
Bu yamalar 2021-2022'de işe yarıyordu. O dönemde Anti-Bot sistemleri ağırlıklı olarak sayfa seviyesinde JavaScript özelliklerini kontrol ediyordu. Modern tespit sistemlerinin gerçekte kontrol ettiklerine karşı etkisizler.
Stealth pluginleri 2026'da neden başarısız
Anti-Bot tespiti JavaScript katmanının altına indi. Artık önemli olan sinyaller evaluateOnNewDocument'ın ulaşamadığı sinyaller.
CDP protokol sızıntıları
Puppeteer Chrome'a bağlandığında Runtime.enable, Page.enable ve Network.enable gibi CDP komutları gönderiyor. Bu komutlar tarayıcının iç durumunda artefaktlar bırakıyor. Anti-Bot scriptleri bunları tespit edebiliyor. Stealth plugin CDP'ye dokunmuyor. Sayfa seviyesinde çalışıyor, protokol seviyesinde değil.
Runtime.enable komutu tek başına otomatik bir oturumu parmak izi ile tespit etmeye yeter. Sayfa seviyesinde yapılan hiçbir yama CDP komutlarının gönderildiği gerçeğini gizleyemez.
TLS Fingerprinting
Cloudflare herhangi bir HTML sunmadan önce TLS fingerprint'lerini (JA3/JA4) kontrol ediyor. TLS fingerprint tutmuyorsa oturumunuz challenge'a tabi tutuluyor ya da engelleniyor. Stealth pluginin JavaScript yamaları daha yüklenmeden bu gerçekleşiyor. Plugin sayfa seviyesinde çalışıyor ve TLS katmanına erişemiyor. TLS Fingerprinting'in tespit yığınında nasıl çalıştığının ayrıntılı açıklaması için Tarayıcı otomasyonunda engellenmemek makalesinin ağ katmanı bölümüne bakın.
JavaScript override tespiti
Anti-Bot scriptleri sadece navigator.webdriver'ın değerini kontrol etmiyor. Property descriptor'ını kontrol ediyor. Gerçek bir tarayıcıda webdriver, Navigator prototype üzerinde native getter olarak tanımlıdır. Stealth plugin bunu Object.defineProperty ile override ediyor. Bu da descriptor'ın configurable flag'ini ve getter fonksiyonunun toString() çıktısını değiştiriyor. Tespit scriptleri tam olarak bu tutarsızlıkları test ediyor.
Aynı durum diğer override'lar için de geçerli. chrome.runtime, plugin dizileri ve permission query'leri native implementasyonları JavaScript stub'ları ile değiştirildiğinde tespit edilebilir farklar gösteriyor.
Headless rendering farkları
--headless=new (yeni headless modu) ile bile Chrome, headed Chrome'dan biraz farklı render ediyor. Font metrikleri, GPU hızlandırmalı Canvas çıktısı ve ekran boyut API'leri farklı değerler dönüyor. Stealth plugin bazı navigator özelliklerini yamalıyor ama rendering motorunun kendisinin nasıl çalıştığını değiştiremez.
Stealth pluginlerinin yerini ne aldı
Ekosistem iki yaklaşıma ayrıldı: yamalı driverlar (protokol katmanını düzeltir) ve yamalı tarayıcılar (motor katmanını düzeltir). Farklı sorunları çözerler.
Yamalı driverlar: Rebrowser ve Patchright
Rebrowser Puppeteer ve Playwright için drop-in alternatifler sunuyor (rebrowser-puppeteer, rebrowser-playwright). Yamalar CDP protokol artefaktlarını hedef alıyor: Runtime.enable ve diğer komutların tarayıcıyla etkileşimini değiştirerek tespit edilebilir iz bırakmayı engelliyor. Kodunuzdaki paket adını değiştiriyorsunuz, geri kalan her şey aynı kalıyor.
// Before: detected
const puppeteer = require('puppeteer');
// After: CDP artifacts patched
const puppeteer = require('rebrowser-puppeteer');Patchright aynı şeyi Playwright için yapıyor. Python odaklı. Runtime.enable sızıntılarını yamalıyor ve aktif olarak bakımı sürdürülüyor.
Sınırlama: Yamalı driverlar protocol detection sorununu çözüyor ama Browser Fingerprinting'i ele almıyor. Site Canvas, WebGL, AudioContext veya font rendering kontrol ediyorsa hala açıksınız. Yamalı driverlar "otomatik misin?" sorusunu yanıtlıyor ama "gerçek bir cihaz mısın?" sorusunu yanıtlamıyor.
Yamalı tarayıcılar: Anti-Detect motorları
Yamalı bir tarayıcı Chromium'u kendisi modifiye eder. Böylece fingerprint sinyalleri motor seviyesinde tutarlı olur. Canvas çıktısı, WebGL rendering, AudioContext verisi, font metrikleri, ekran boyutları, zaman dilimi ve locale tek bir gerçek cihaz profiline uyan değerler raporlar.
Clawbrowser tam olarak bunu yapıyor. 20+ yüzey üzerinde motor seviyesinde fingerprint yamaları, yerleşik proxy routing, WebRTC sızıntı önleme ve native CDP desteği olan bir Chromium fork'u. Mevcut Puppeteer veya Playwright kodunuz CDP üzerinden bağlanıyor:
from playwright.async_api import async_playwright
async def automate_without_detection():
async with async_playwright() as p:
# Connect to Clawbrowser instead of stock ChromeStealth pluginlerinin kapsamadığı ne var burada:
- Motor seviyesinde Canvas/WebGL/AudioContext tutarlılığı (JavaScript stub'ları değil)
- Gerçek bir Chrome oturumuna uyan TLS fingerprint
Runtime.enableartefaktları olmadan CDP bağlantısı- Tarayıcı seviyesinde WebRTC sızıntı önleme
- Coğrafi eşleme dahil yerleşik proxy routing
Fingerprint sinyallerinin tam dökümü için Browser Fingerprinting: Anti-Bot Sistemlerin Kullandığı 20+ Sinyal makalesine bakın.
Nasıl seçim yapmalı
Doğru araç sizi neyin tespit ettiğine bağlı.
| Tespit türü | Belirti | Çözüm |
|---|---|---|
| CDP protokol artefaktları | Sayfa yüklenirken anında engelleme, CAPTCHA yok | Yamalı driver (Rebrowser, Patchright) |
| Browser fingerprint uyumsuzluğu | Her sayfada CAPTCHA veya sessiz veri farkları | Yamalı tarayıcı (Clawbrowser) |
| TLS fingerprint uyumsuzluğu | Sayfa yüklenmeden engelleme (ilk istekte 403) | Proxy routing ile yamalı tarayıcı |
| IP itibarı | Datacenter IP'lerinden engelleme | Residential proxy (herhangi bir yaklaşım) |
| Davranışsal tespit | 5-10 sayfa sonra engelleme | Kodda timing ve session management |
Yamalı driverlar ne zaman yeterli
CDP artefaktlarını kontrol eden ama tarayıcınızın derinlemesine fingerprint'ini çıkarmayan temel tespitli siteleri otomatize ediyorsanız Rebrowser veya Patchright yeterli olacaktır. Hafif Anti-Bot kurulumlu birçok site bu kategoriye giriyor.
Yamalı tarayıcı ne zaman gerekli
Site Cloudflare Bot Management, Akamai Bot Manager, DataDome veya PerimeterX kullanıyorsa motor seviyesinde fingerprint tutarlılığı gerekli. Tespit 20+ tarayıcı yüzeyini aynı anda kontrol ettiğinde sayfa ve driver seviyesinde yamalar yetmez.
Clawbrowser yerel, ücretsiz, Chromium tabanlı bir Anti-Detect tarayıcı. Yönetilen fingerprint'ler, proxy routing, native CDP ve yerleşik MCP sunucusu içeriyor. Tarayıcı kimliği ve ağ katmanlarını yönetiyor. Kodunuz sadece davranış ve session management ile ilgileniyor.
Stealth pluginlerinden geçiş
Şu anda puppeteer-extra-plugin-stealth veya playwright-stealth kullanıyorsanız Clawbrowser'a geçiş beş dakikadan kısa sürer.
Önce (Stealth plugin)
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
const browser = await puppeteer.launch({ headless: false });Sonra (Clawbrowser)
const puppeteer = require('puppeteer-core');
// Connect to Clawbrowser over CDP
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://127.0.0.1:9222'Temel fark: puppeteer-extra ve puppeteer-extra-plugin-stealth paketlerini dependency'lerinizden tamamen çıkarıyorsunuz. Plugin konfigürasyonu yok. Evasion modülü seçimi yok. Anti-detection tarayıcı seviyesinde gerçekleşiyor, kodunuzda değil.
Scraping'e özel kalıplar (sayfalama, session warming, Cloudflare bypass) için Tespit Edilmeden Web Scraping makalesine bakın.
FAQ
puppeteer-extra-stealth tamamen işe yaramaz mı?
Ticari Anti-Bot sistemi olmayan sitelerde hala işe yarıyor. Hedef site sadece navigator.webdriver ve temel JavaScript özelliklerini kontrol ediyorsa Stealth plugin yeterli. Ama Cloudflare, Akamai, DataDome, PerimeterX kullanan siteler ya da Facebook, Instagram, LinkedIn ve X gibi sosyal medya platformları onu tespit eder.
playwright-stealth aynı sorunları mı taşıyor?
Evet. playwright-stealth aynı yaklaşımı kullanıyor: sayfa seviyesinde injection ile JavaScript override'ları. TLS fingerprint'lerine, CDP artefaktlarına ve motor seviyesinde rendering'e ulaşamıyor. Tespit sınırlamaları aynı.
Rebrowser ve Clawbrowser birlikte kullanılabilir mi?
Gerek yok. Clawbrowser hem protokol katmanını hem fingerprint katmanını yönetiyor. Rebrowser yamaları standart Chrome kullanırken ve Anti-Detect tarayıcıya geçemediğinizde işe yarar. Clawbrowser kullanıyorsanız CDP artefaktları zaten halledilmiş durumda.
Stealth neden hala haftada 600K indirme alıyor?
Atalet. Çoğu öğretici ve Stack Overflow yanıtı hala onu önerir. Geliştiriciler 2022'de işe yarayan çözümleri paketin bakımının sürdürülüp sürdürülmediğini kontrol etmeden kopyalar. Yüksek indirme sayısı modern tespite karşı etkili olduğu anlamına gelmez.
Yamayı bırak, sorunu çöz
Stealth pluginleri Anti-Bot tespiti JavaScript seviyesinde kontrollere dayandığında makul bir çözümdü. Tespit TLS fingerprint'lerine, CDP protokol analizine ve motor seviyesinde rendering farklarına taşındı. Sayfa seviyesinde yamalama bu sinyallere ulaşamaz.
Tespiti tarayıcı seviyesinde yönetmek için Clawbrowser'ı kurun: kurulum komutunu clawbrowser.ai adresinden kopyalayın ve AI ajanınıza yapıştırın. puppeteer-extra ve puppeteer-extra-plugin-stealth paketlerini dependency'lerinizden kaldırın. Mevcut Puppeteer veya Playwright kodunuzu CDP üzerinden bağlayın. Anti-detection tarayıcıda, kodunuzda değil.
Temel tespit modeli için Tarayıcı Otomasyonunda Engellenmemek: 4 Katmanlı Savunma Yığını makalesine bakın.
Continue exploring
Ask AI how Clawbrowser helps
Okumaya devam edin
İlgili yazılar

Tespit edilmeden web scraping: halen çalışan teknikler
Pratik web scraping rehberi: keşif, HTTP mi browser mı, veri çıkarma, pagination, session yönetimi ve Playwright ile ölçekleme.
Yazıyı oku →
Tarayıcı Otomasyonunda Engellenmemek: 4 Katmanlı Savunma Mimarisi
Anti-bot sistemler otomasyonu dört katmandan tespit eder: fingerprint, ağ, davranış ve oturum. Her katmanı nasıl düzelteceğinizi gösteren yapısal rehber.
Yazıyı oku →