Playwright senaryonuz geçen hafta çalışıyorsa ve şimdi Cloudflare hizmetinin meydan okuma sayfasını vuruyor veya HTTP 403'e geri dönüyorsunuz. error 1020 - Sorun neredeyse asla kodunuzu değildir. Sorun, tarayıcınızın kendisini bir dizi sinyal aracılığıyla otomasyon olarak tanımladığıdır, hatta bunun eleştirilmediğini bile bilemezsiniz.
Bu kılavuz, Playwright senaryolarının Cloudflare tarafından neden engellendiğini, özellikle Cloudflare hizmetinin okuması ve dört düzeltme sınıflarının aslında üretimde ne kadar güvenilir olduklarını açıklıyor. TL;DR: sayfa seviyesi yamalar sizi birkaç hafta satın alır; tarayıcı-biner seviyesindeki tek bir kimliktir.
Neden Playwright Tetikler Cloudflare Bot Tespiti
Cloudflare blokları Playwright seansları çünkü varsayılan Playwright tabanlı Chromium tarayıcı, Cloudflare hizmetinin bot yönetim sisteminin otomasyon olarak kabul edilmesi için eğitildiği bir dizi işaret ortaya çıkıyor. Blok rastgele değil ve tek başına değil - senaryonuzdaki ilk etkileşime dayalı bir kimlik sınıflandırmasına dayanmaktadır.
Bir Cloudflare-korunan sayfası yükünün ilk 200 milisaniyesi, kodunuzun hareket etmeden önce çalışan bir parmak izi ve davranışsal çek yığını içerir. page.goto() Çözülüyor, seans zaten sınıflandırılır.
Neden bu zamanla daha kötüleşiyor
Cloudflare hizmetinin bot yönetimi, tespit modellerini sürekli olarak güncelledi. Cloudflare hizmetinin bot yönetim belgeleriAncak sistem milyonlarca sitedeki trafik modellerinde eğitim gören makineyi kullanıyor - bu yüzden Playwright + Cloudflare debugging parçalarınızın imzalanması anlamına geliyor.
Six Signals Cloudflare Playwright aracından Okuuyor
Playwright aracının Bulutu problemini düzeltmek için, Cloudflare hizmetinin aslında kontrol ettiğini bilmeniz gerekir. Altı yüksek performanslı sinyal vardır.
1. Sezon 1. navigator.webdriver Bayrak bayrağı
En temel sinyal. Bir vanilya Playwright- kontrollü Chromium setleri navigator.webdriver = true. Tespit sistemleri bunu ilk senaryo yürütmesinde okudu. Çoğu çalmacı bunu idare eder, ancak bazı yamalar kendilerini algılar.
2. TLS parmak izi (JA3 / JA4)
Playwright aracının alttaki Chromium tarayıcısını belirli bir şifre sırası, uzantı listesi ve eliptik eğri kümesiyle bir TLS Client Hello üretir. Bu, Cloudflare hizmetinin bilinen otomasyon istemci imzalarıyla eşleştirebileceği bir JA3 veya JA4 hash oluşturur. Salesforce kuruluşunun açık kaynaklı JA3 spesifikasyonu TLS el sıkışmasının kullanıcı aracısından bağımsız olarak parmak izi oluşturabildiğini açıklar.
3. HTTP/2 çerçeve siparişi
Bir tarayıcının HTTP/2 SETTINGS, WINDOW_UPDATE ve HEADERS çerçevelerini gönderdiği sıra bir Chrome sürümünde tutarlıdır, ancak HTTP/2 protokolünü farklı oluşturan otomasyon kütüphanelerinden farklıdır. Cloudflare bu tabakayı okur.
4.Kan, WebGL ve ses parmakları
Sayfa Cloudflare meydan okuma JavaScript dilini çalıştırırken, tuval ve WebGL bağlamları için içerik test eder ve piksel verilerini geri okur. Ambro Playwright Chromium, deterministic, tekrarlanabilir okumalar üretir. Aynı okuma binlerce seansta ortaya çıkıyor.
5. Zaman Bölgesi × yerel × IP geo coherence
Tarayıcınız hediye verirse en-US ve America/New_York Bir Frankfurt veri merkezi aracılığıyla IP rotalarınız olsa da, yanlış eşleştirme yakın bir bot sinyalidir. Cloudflare cross-references all three.
6. Sayfa yüklendikten sonra Davranış sinyalleri
Sorun parmak izi aşamasını geçerse, davranışsal kontroller başlar: fare hareketi entropi, kaydırma kalıpları, anahtarstroke uzaj. Pure programmatic etkileşimleri (tam koordinatlarda otomatik tıklamalar) burada tespit edilebilir.
Dört Düzeltme Sınıfı, Derecelendi
Playwright + Cloudflare blokajı için dört gerçek düzeltme kategorisi vardır. Ne kadar uzun süre çalıştıklarını fark ederler.
Tier 4 (en küçük güvenilir): Kullanıcı-agent ve temel bayrak manipülasyonu
Bu, çoğu geliştiricinin deneydiği ilk şeydir: özel bir kullanıcı ajanı kurmak, kaldırmak --enable-automation Bayrak ve aşırılık navigator.webdriver via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via via addInitScript. Yukarıdaki altı sinyalden tek birini ele alır.
Üretimde Hayatspan: Günler haftalar. Cloudflare hizmetinin temel tespiti bu tabakayı çok geçmiş durumda.
Uygun olduğunda: Gerçek bir bot algılaması olmayan Siteler, sadece en belirgin bayrağı bastırmanız gerekir.
Tier 3 (limited güvenilirlik): Stealth plugins
The The The The The The The The The The The puppeteer-extra-stealth Eklentiler ailesi, kütüphaneler aracılığıyla Playwright aracına ported to Playwright via library like playwright-stealthBu yama bir düzine veya daha fazla navigator özellikleri, override tuval gürültü ile okur ve sayfa seviyesinde JavaScript enjeksiyonu ile yukarıdaki sinyallerin birkaçını ele alalım.
Üretimde Hayatspan: Haftalar birkaç ay içinde. yamalar kendileri imza tespit sistemleri tespit edebilir ve yamalar Chromium tarayıcısının alt yapı hattından farklı bir katman üzerinde çalışır - bu yüzden tuval ve WebGL okumaları hala kenar davalarına meydan okuyan tarayıcıya ihanet eder.
Uygun olduğunda: Orta koruma siteleri, prototipler, zaman başarısızlıklarının kabul edilebilir olduğu ortamlar.
Neden sonunda başarısız olur: Sayfa seviye yamalama bilinen bir modeldir. Başsız tarayıcıların tespitinde yayınlanan araştırma, otomatik tarayıcılar, bu yamaların başarılı bir şekilde mülk değerleri verdiğinde bile yamalarının zamanlaması ve davranışları tarafından tanımlanabilir.
2. Seviye (ortak güvenilirlik): Stealth plugins + konut proxy + dikkatli davranış
Bir konut proxy ekleyin ve senaryonuzu gerçekçi zamanlama ile araçlayın - değişken gecikmeler, fare hareketi eğrileri, kaydırma kalıpları - çalınmış eklenti yığınına. Bu IP-geo sinyalini ve davranışsal sinyali ele alır.
Üretimde Hayatspan: Aylar. Bu, en otomasyon ekiplerinin makul korumalı siteler için yer aldığı yerdir.
Kalan başarısızlık modu: Yerel × zaman bölgesi × IP tutarlılık sorunu. Almanya'da bir konut proxy satın alırsınız; tarayıcı zamanı alanını Avrupa/Berlin'e koymayı unutursunuz; dil başlıkları hala Avrupa/Berlin'e gönderiyor; dil başlıkları hala gönder en-US. Yanlış eşleştirme sessizdir - senaryonuz hata yapmaz - ancak Cloudflare hizmetinin meydan okuma oranı haftalarca tırmanır.
1. Seviye (en güvenilir): Motor seviyesi kimlik tutarlılığı
Bu, parmak izi yüzeylerinin tarayıcı ikilisinin içinde yanıldığı bir Chromium inşa anlamına gelir, JavaScript enjeksiyonu ile değil.Bu, tuval, WebGL, ses, navigator özellikleri, ekran, fontlar, zaman bölgesi ve yerel IP coğrafyası ile eşleşmesi gerektiği anlamına gelir. Ve bu, koordinatörünün hatırlaması gereken bir şeyden otomatikdir.
Bu, bir şeydir Clawbrowser Motor seviyesindeki yamalama, algılama sistemlerinin kendisini modelle eşleştirmemesi anlamına gelir, çünkü sayfada çalışan hiçbir çalma kodu yoktur - değerler tarayıcının yerli/zaman bölgesi/IP yanlış eşleştirme sınıfını ortadan kaldırır.
Playwright aracını yerel bir anti-det runtime'ya geçmek ve barındırılan bir tarayıcı hizmetine taşımak arasında seçim yapıyorsanız, bakınız the see the see the switch Playwright to a local anti-detect runtime and move it to a host browser service, see the see the see the see the see the see the see the see the see the see the see the see the see the see the see the see the see the Clawbrowser vs Browserbase Karşılaştırma Dağıtım için, mahremiyet ve ticaret ücretlerine mal olur.
Yaşam süresiz olarak: periyodik profil yenileme ile. Her profil, bilinen bir imza taşımak yerine eşsizdir.
Uygun olduğunda: Herhangi bir üretim akışı, güvenilirlikin stok Chromium tarayıcısında kalma kolaylığından daha fazla önemli olduğu. AI agent iş yükleri özellikle, çünkü orkestrasyon tabakası, runtime katmanının altında değiştirildiği zaman değişmeden devam edebilir.
Step-by-Step Uygulama: The Tier 1 Fix
Bir stoktan hareket edin Playwright + bir motor seviyesindeki koşu zamanı dört adım ve bir tek kod değişikliği alır.
Adım 1: Mevcut çöpünüzün neye benzediğini tanımlayın
Her şeyi değiştirmeden önce, mevcut kurulumunuzu browserleaks.com veya creepjs gibi genel bir fingerprint denetleyicisinde çalıştırın; hangi yüzeylerin işaretlendiğini not edin. Çoğu stealth-plugin kurulumu en az canvas, WebGL ve TLS protokolünde başarısız olur.
Adım 2: Runtime
Clawbrowser için, standalone'den başlayın clawctl Halk içinde arşiv
clawbrowser/clawctl Yayın:
# Download the matching clawctl-* archive for your OS/arch.
open https://github.com/clawbrowser/clawctl/releases/latestArşivleri aldıktan sonra, eşleşen ajan entegrasyonunu yükleyin ve seti API anahtarınız:
clawctl install --agent claude-code --json
clawctl config set --api-key "clawbrowser_xxxxx"3. Adım: Bir parmak izi profili ile yönetilen bir seansa başlayın
clawbrowser start --session work -- --fingerprint=fp_us --country=US --connection-type=residential
clawbrowser endpoint --session work
# prints: http://127.0.0.1:9222The The The The The The The The The The The --fingerprint, --countryVe --connection-type Bayraklar, tuval, WebGL, navigator, ekran, fontlar, zaman bölgesi, yerel, ve tüm ABD kimliğiyle uyumlu konut IP seçeneğini seçin.
Adım 4: Playwright senaryonuzda bir çizgi değiştirin
Daha önce:
browser = await p.chromium.launch(headless=False)Sonra:
endpoint = "http://127.0.0.1:9222"
browser = await p.chromium.connect_over_cdp(endpoint)
page = browser.contexts[0].pages[0]Her şey aşağı akışı - taşıyıcılar, navigasyon, iddialar - değişmeden çalışır. Ajan veya otomasyon mantığına aykırıdır. Sadece bağlantı kalıbı değişiklikleri.
Adım 5: Üretim trafiği çalıştırmadan önce Doğrulama
Gemilerin dış görünüşü kimliğini doğrulamak için runtime ile doğruladığı doğrulama sayfasını çalıştırın:
clawbrowser start --session work --verify -- https://example.comBu, çoğu takım atlıyor ve çoğu takım daha sonra pişmanlık duyuyor.Bir kez profil nesli sessiz yerel-günlük bir otobüs sınıfı yakaladıktan sonra pişman oluyor.
Multi-session dağıtım da dahil olmak üzere tüm CDP entegrasyonu modelleri için, bakınız the complete CDP integration pattern including multi-session deployment, see the see the full CDP integration patterns including multi-session deployment, see the see the complete CDP integration patterns, see the complete CDP integration patterns including multiple-session deployment, see the complete CDP integration patterns, see the complete CDP integration patterns. Clawbrowser belgeleri.
Beklenmiş Sonuçlar ve Faydaları
Motor seviyesindeki kimlik tutarlılığı için çalmadan sonra, üretimdeki değişimin ölçümleri şunlardır:
- CAPTCHA oranı, Cloudflare-korunan sitelerde% 30–60'tan (tipik olarak paylaşılan eklentilerle) tek haneli yüzdelere, kalan CAPTCHA testinin kimlik sınıflandırması yerine davranışsal desenler tarafından meşru olarak tetiklediği gibi.
- Session life saatlerce veya haftalara kadar uzanır, çünkü seans ilk düzine eylemden sonra ilerici bayrak almaz.
- Maintenance Mall damlalar çünkü yamalar Cloudflare hizmetinin tespit modeli gelişti.
- Multi-account iş akışları güvenilir hale gelir çünkü her seans aynı çalkantı imzası tüm seanslarda paylaşılan aynı gizli ve farklı bir kimlike sahiptir.
Dürüst mağara: hiçbir tarayıcı, CAPTCHA evrensel olarak atlar veya bazı iş akışlarının insan-top müdahalesini gerektirdiğini kabul etmez.
Common Hatalar Kaçmak için
Motor seviyesindeki yamalar üst üste CDP overrides
Eğer runtime ikili düzeyde parmak izi ele alırsa, Playwright aracının CDP komutlarını aşırı navigator özellikleri veya tuval davranışına da kullanmıyor. İki katman aynı fikirde olmayabilir, motor seviyesindeki yaklaşımın özellikle kaçınması için tasarlanabilir hale gelir.
Mid-session proxy rotasyonu
Aktif bir oturum sırasında yönlendirmeler – bir iş akışı aracılığıyla IP yarı yol açıyor – güçlü bir bot sinyali çünkü gerçek insanlar IP adresini her 30 saniyede değiştirmiyorlar. Oturum başına bir proxy kullanın; yeni kimlikler için, yeniden üretilen bir profille yeni bir seans başlayın.
Zaman Bölgesi/yerel hizasını görmezden gelin
Eğer manuel olarak yapılandırılabilirseniz, tarayıcının zaman bölgesi, yerel ve kabul edilen dilleri proxy'nin coğrafyası ile birleştirmelisiniz. bunlardan herhangi birini unutun en yaygın sessiz başarısızlık modudur.
Aynı parmak izi "farklı" kimlikleri yeniden kullanarak
Aynı tuval parmak izi ile iki seans ve aynı WebGL fileer dizesi, her kullanıcı ajanının mevcut olduğu her şeyden bağımsız olarak Cloudflare için aynı kimliktir. Distinct kimlikleri farklı parmak izi profilleri gerektirir, sadece farklı kurabiyeler değil.
Başsız modu kafalı modu aynı şekilde tedavi etmek
Headless Chrome tarayıcısının ek parmak izi vardır (farklı ses çıktısı, farklı varsayılan liste, bazı durumlarda farklı uygulama yolları).Eğer yerel debugging kafalı modda ve üretim dağıtımınız kafasızsa, üretim kimliğini ayrı olarak doğrulayın.
Sık Sorulan Sorular
Playwright senaryosu neden yerel olarak çalışıyor ama üretimde bloke ediliyor?
En yaygın nedeni çevresel farktır: yerel gelişme konut IP adresinizi kullanır, gerçek zaman bölgenizi ve geliştirici makine parmak izleriniz, bir veri merkezi veya proxy IP adresinin arkasındaki Linux konteynerinde çalışırken, potansiyel olarak farklı zaman bölgesi, yerel ve parmak izi yüzeyleri ile.The orkestration code is aynıdır; kimlik katmanı her iki ortamda tutarlı bir kimlik üreten bir zaman kullanır.
Bir konut proxyunu tek başına Cloudflare problemini düzeltiyor mu?
Hayır. Bir konut proxy IP-geo sinyalini düzeltiyor ancak tuval bırakıyor, WebGL, TLS, navigator ve zaman bölgesi sinyalleri değişmedi.Eğer bunlar hala otomasyon kalıpları yayıyorsa, Cloudflare hala seansı algılar.
Is Is Is Is Is Is Is Is Is Is Is Is Is Is Is Is playwright-stealth Cloudflare-korulmuş siteler için yeterli mi?
Hafif korunan siteler için genellikle evet. Aktif Cloudflare Bot Management veya orta derecede yeni bir kurumsal bot çözümü kullanan siteler için genellikle hayır; Cloudflare modelleri güncellendikçe güvenilirlik aylar içinde düşer. Güvenilirliğin önemli olduğu production iş akışlarında eklenti düzeyindeki stealth yaklaşımının bilinen bir tavanı vardır.
Cloudflare hizmetinin "Verified Bot" programı hakkında ne var - sadece botumu kaydetmeliyim?
Kullanım durumunuzu genişletirse (aratıcı motor taramaları, izleme hizmetleri, erişilebilirlik araçları), Cloudflare's TYYİYLEMLİ Bots programı Yasal yol ve doğru cevap. Çoğu otomasyon ve AI ajanı iş akışları doğrulanmış bot statüsü için uygun değildir ve gereksiz otomasyon kendi temelleri üzerinde tespit etmek zorundadır.
Bu yaklaşım diğer anti-bot satıcılara karşı çalışacak (DataDome, Akamai, PerimeterX)?
Aynı prensipler uygulanır: ikili düzeyde kimliğinizi daha tutarlı, daha az kolay algılama sistemleri seansı otomasyon olarak gösterebilir. Her satıcı farklı ağırlığında - DataDome davranışsal desenlere çok eğilir, Akamai bir mix üzerinde - ancak motor seviyesindeki kimlik tutarlılığı tüm bunlara karşı yapısal cevaptır.
Sonuç Sonuç Sonuç
Model tutarlıdır: Playwright + stock Chromium tespit edilebilir sinyaller üretir, sayfa seviyesi yamalar algılanırken bazı sinyalleri ele alır ve sadece dayanıklı cevap tarayıcı ikili artı egress içinde kimlik tutarlıdır.
Eğer senaryonuz Cloudflare tarafından engelleniyorsa, en yüksek kesinti değişikliği, iki hafta boyunca çalışan senaryolar arasındaki farkdan hareket eder ve bu iki yıl boyunca çalışan bir Chromium inşa edilir.
Clawbrowser Tam olarak bu katman için inşa edilmiştir. Standart CDP konuşur, bu yüzden mevcut Playwright senaryo değişiklikleri tek bir çizgi ile - ve alt tarayıcı parmak izi, proxy ve kimlik tutarlı olmayan yaklaşımın eşleşebileceğini savunur.
Okumaya devam edin
İlgili yazılar

Puppeteer-Extra-Stealth Artık Geçersiz: Modern Otomasyon Ne Kullanıyor
puppeteer-extra-plugin-stealth 2023'ten beri güncellenmedi. Modern Anti-Bot sistemlerine karşı neden başarısız olduğunu ve yerine ne kullanmanız gerektiğini anlatıyoruz.
Yazıyı oku →
Otomasyon Neden CAPTCHA'yı Tetrasyon Ediyor: 7Signal Tanı Kılavuzu
Eğer senaryonuz dün çalıştıysa ve bugün CAPTCHA testini vuruyorsa, neden tanımlanabilir. 7 sinyalleri ile yürüyün - olasılık açısından.
Yazıyı oku →