Biz Geonode olarak, genellikle bu tür bir kütüphaneyle birlikte önerilen bir ürün olan proxy satıyoruz. Dürüst olmak gerekirse, bir baypas kılavuzu yazmayacağız ve bu özel durumda araç zaten artık kullanılmıyor. Eylül 2026'da paketi inceledik: PyPI'da 1.2.71 sürümü, Nisan 2023'te yüklenmiş, kaynak depoya en son Haziran 2025'te dokunulmuş ve bu değişiklikler işlevsel olmaktan ziyade idari nitelikteydi. Bu arada Cloudflare’in bot algılama sistemi, milyarlarca istek üzerinden makine öğrenimi, JavaScript tabanlı başlıksız algılama ve başlık sırası analizine geçmiştir. JavaScript sorununu çözen bir requeststabanlı kütüphane, bunların hiçbirini ele almamaktadır. Bu makalenin faydalı kısmı son üç bölümdür.
Cloudscraper Ne Amaçla Geliştirildi?
Kütüphanenin kendi açıklaması, hedef kitlesi konusunda net bir şekilde ortaya koyuyor ve bunu şimdi okumak oldukça aydınlatıcı.
Cloudscraper, kendisini “Requests ile uygulanan, Cloudflare’in bot önleme sayfasını (aynı zamanda ‘Saldırı Altındayım Modu’ veya IUAM olarak da bilinir) atlatmaya yarayan basit bir Python modülü” olarak tanımlamaktadır. "Cloudflare'in bot önleme sayfası şu anda yalnızca istemcinin JavaScript'i destekleyip desteklemediğini kontrol ediyor, ancak gelecekte ek teknikler ekleyebilirler" denilmektedir.
Çözdüğü mekanizma, klasik ara sayfadır:
Checking your browser before accessing website.com.
This process is automatic. Your browser will redirect to your requested content shortly.
Please allow up to 5 seconds...
Kütüphanenin yaklaşımı, "JavaScript zorluklarını çözmek için bir JavaScript motoru/yorumlayıcı kullanmak"tı; bu, "komut dosyasının, Cloudflare'in JavaScript'ini açıkça deşifre etmeden ve ayrıştırmadan normal bir web tarayıcısı gibi davranmasına olanak tanır". Belgelerinde, bir komut dosyasının "Cloudflare anti-bot özelliğinin etkin olduğu herhangi bir siteye ilk ziyaretinde ~5 saniye bekleyeceği", ancak sonrasında herhangi bir gecikme olmayacağı belirtiliyor.
Mevcut sorun için bu makul bir tasarımdı. Zorluk bir JavaScript bulmacasıydı; kütüphane bir JavaScript motoru çalıştırdı ve sorunu çözdü.
README dosyasında ayrıca projenin tarihini kesin olarak belirten bir taahhüt yer almaktadır: "Cloudflare tekniklerini periyodik olarak değiştirir, bu nedenle bu depoyu sık sık güncelleyeceğim."
Bakım Durumu, Kontrol Edildi
İzlenimlerden ziyade gerçekler; Eylül 2026’da doğrulanmıştır.
PyPI’daki en son sürüm, 25 Nisan 2023 tarihinde yüklenen 1.2.71’dir. Bu, yazarın “düzenli aralıklarla değişen” olarak tanımladığı hedefe kıyasla üç yılı aşkın bir gecikme anlamına gelmektedir.
GitHub deposuna en son Haziran 2025'te bir değişiklik eklenmiştir ve en son commit'lerin başlıkları "Sahibi düzelt", "gitignore'u yeniden ekle" ve "Sahip bilgilerini düzelt" şeklindedir — bunlar, algılama güncellemelerinden ziyade idari düzenlemelerdir.
Arşivlenmemiştir ve yaklaşık 36 adet açık sorun bulunmaktadır.
Bunların hiçbiri, kullanışlı bir araç yazan ve bunu MIT lisansı altında ücretsiz olarak dağıtan yazara yönelik bir eleştiri değildir. Bu sadece paketin mevcut durumudur ve bu pakete bağımlı hale gelmek üzere olan herkes için en önemli gerçektir. Tüm değer önerisi bir rakibe ayak uydurmak olan bir kütüphane, sürüm tarihinin kendisi spesifikasyon olduğu bir kütüphanedir.
Bir makalede cloudscraper'ın önerildiğini görürseniz, makalenin tarihine bakın. Dolaşımda olan tavsiyelerin büyük bir kısmı yazıldıkları tarihte doğruydu ve daha sonra gözden geçirilmemiştir.
Cloudflare Algılamasının Şu Anki Durumu
Cloudflare’in kendi belgelerine göre, bu yaklaşımın artık işe yaramamasının nedeni.
Cloudflare'in bot puanı 1 ile 99 arasında değişir; burada 1, "Cloudflare'in isteğin otomatikleştirildiğinden oldukça emin olduğu" anlamına gelirken, 99 ise isteğin büyük olasılıkla bir insan tarafından yapıldığını gösterir. Bu puan, birlikte çalışan birkaç motor tarafından üretilir.
Tespitlerin çoğu makine öğrenimi sayesinde gerçekleştirilir. Cloudflare, bir istemcinin insan olma olasılığını tahmin etmek için günlük milyarlarca isteği analiz eden ve "başlıklar ve tarayıcı sinyalleri gibi istek özelliklerini" inceleyen "denetimli makine öğrenimi metodolojisi"nden bahseder.
Sezgisel yöntemler, bilinen imzalarla eşleştirme yaparak, yüksek güvenilirlikteki tespitlere 1 puanı atar.
JavaScript tespitleri, Cloudflare’in “kişisel olarak tanımlanabilir herhangi bir bilgi toplamadığını” belirttiği “hafif, görünmez istemci tarafı JavaScript enjeksiyonu” yoluyla başsız tarayıcıları tespit eder.
Algılama kimlikleri, öngörülebilir davranışları tanımlayan statik kurallardır. Cloudflare’in verdiği örnek oldukça açıklayıcıdır: “bir istemcinin, beyan ettiği tarayıcının kullanacağı sıradan farklı bir sırayla başlıklar gönderdiği” durumları tespit edebilirler.
Asıl mesele işte bu son noktadır. Başlık sırası, bir requeststabanlı kütüphanenin kontrol edebileceği bir şey değildir ve bir JavaScript testini çözdüğünüzde de değişmez. TLS el sıkışma imzası da öyle; bu, gönderdiğiniz herhangi bir şeyden ziyade Python HTTP yığınınızın bir özelliğidir.
Yani model tersine döndü. 2019’da soru “bu istemci JavaScript çalıştırabilir mi?” idi ve JavaScript motoruna sahip bir kütüphane bu soruya evet cevabı veriyordu. Şimdi ise soru “bu istemciyle ilgili her şey, iddia ettiği şeyle uyumlu mu?” şeklindedir ve Chrome olduğunu iddia eden bir Python süreci, aynı anda birkaç bağımsız sinyalde başarısız olmaktadır — bunların hiçbiri, bir doğrulama çözücüsünün müdahale ettiği unsurlar değildir.
Cloudflare ayrıca kasıtlı olarak düşmanca yanıtlar da eklemiştir. AI Labyrinth adlı sistemi, tarayıcılara engel olmak yerine tutarlı bir şekilde üretilmiş içeriği süresiz olarak sunar; bu da bir veri kazıyıcının değerli hiçbir şey toplamadan başarılı gibi görünebileceği anlamına gelir. Bu örüntüyü honeypot tuzakları başlıklı yazımızda ele almıştık.
Proxy'ler Neden Bu Sorunu Çözmüyor?
Kendi ürünümüz aleyhinde argümanlar sunduğumuz kısım; çünkü bu doğru.
Yukarıdaki algılama listesine bakın ve içinde neler olduğunu not edin: başlık bileşimi ve sıralaması, tarayıcı sinyalleri, makine öğrenimi ile belirlenen istek özellikleri, JavaScript yürütme özellikleri. Cloudflare'in bot puanının nasıl hesaplandığını açıklayan kendi tanımında IP adresi hiçbir yerde geçmiyor.
Adres itibarı, Cloudflare’in genel kararında kesinlikle dikkate alınan faktörlerden biridir ve kötü bir adres size yardımcı olmaz. Ancak bu, birçok faktörden sadece biridir ve bir Python istemcisini otomatik olarak tanımlayan faktör değildir. requests oturumunun önünde bir konut proxy’si kullanmak, size istemciye bağlı temiz bir adres sağlar ve bu adres, hala tam olarak ne olduğu gibi görünür.
Dürüst bir özet: Adresiniz, kötü bir geçmişe sahip paylaşımlı bir veri merkezi aralığında yer aldığı için işaretleniyorsanız, daha iyi adresler yardımcı olur. İsteğiniz, iddia ettiği tarayıcıya benzemediği için işaretleniyorsanız, hiçbir adres değişikliği bunu değiştirmez — ve size bunun için bant genişliği satmaktansa bunu açıkça söylemeyi tercih ederiz.
Bunun Yerine Ne Yapmalı
Gerçekten faydalı olan bölüm, sorunların çoğunu çözen sırayla.
Resmi bir API olup olmadığını kontrol edin. Cloudflare'in arkasındaki sitelerin büyük bir kısmı, tam da meşru kullanıcıların onaylanmış bir yola sahip olması için bir API yayınlar. Bu, olması gerektiği kadar sık kontrol edilmez, çünkü ilk tepki, belgelere bakmak yerine bir atlatma yolu aramaktır.
Veri akışı veya ortaklık programı olup olmadığını kontrol edin. Bütün sektörler, alt tüketiciler için toplu veriler yayınlar. Sorun.
Korunan yol olmadan nelerin mevcut olduğunu kontrol edin. Site haritaları, RSS akışları, sayfalara gömülü JSON-LD, halka açık veri kümeleri, arşivler. İstediğiniz belirli şeyin, korumasız bir yerde yayınlanmış olduğunu görmek yaygındır.
Siteye danışın. Kim olduğunuzu, neye ihtiyacınız olduğunu ve ne kadar miktarda olduğunu açıklayan bir e-posta, bu konudaki tartışmaların ima ettiğinden çok daha sık sorunu çözer. Bir site operatörünün itirazı genellikle açıklanamayan yüklemeye yöneliktir, size özel olarak değil. Bu aynı zamanda, sürekli çalışan bir erişim sağlayan tek yoldur.
Lisanslı bir veri sağlayıcısından yararlanın. Yaygın veriler — şirket bilgileri, ürün katalogları, piyasa verileri — için bunları satanlar vardır ve fiyatı, satın almaktan kaçınmak için harcanan mühendislik süresinden genellikle daha düşüktür.
Daha az veriye ihtiyacınız olup olmadığını değerlendirin. Veri toplama işlemlerinin büyük bir kısmı, sorunun gerektirdiğinden çok daha fazlasını toplar. Daha küçük ve daha spesifik bir talep, meşru yollarla karşılanması daha kolaydır ve talepte bulunduğunuzda gerekçelendirmesi de daha kolaydır.
Ve eğer meşru bir otomatik istemci çalıştırıyorsanız, ortaya çıkan yol kılık değiştirmek yerine kimlik doğrulamadır. Sektör, kriptografik aracı kimlik doğrulaması, aracı başına erişim politikaları ve bazı durumlarda otomatik trafik için ücretli erişim yönünde ilerliyor — bu yönelimi DataDome başlıklı yazımızda açıklamıştık. Bir sitenin tanımlayabileceği ve izin vermeyi seçebileceği bir aracı olmak, zamanla güvenilirliği azalan değil, artan tek yaklaşımdır.
Bunu Kullanan Mevcut Kodunuz Varsa
Birçok kişinin şu anda karşı karşıya olduğu durum için pratik bir rehber: CloudScraper üzerine kurulmuş ve artık hatalar vermeye başlayan, halihazırda çalışan bir iş akışı.
Öncelikle, gerçekte ne olduğunu belirleyin. "Çalışmayı durdurdu" ifadesi, farklı yanıtlara sahip birkaç farklı arızayı kapsar. Yalnızca istisnayı yakalamak yerine, durum kodunu ve gövdenin ilk kısmını yazdırın:
import cloudscraper
scraper = cloudscraper.create_scraper()
r = scraper.get(url)
print(r.status_code, r.headers.get("content-type"))
print(r.text[:300])
Cloudflare engelleme sayfası içeren bir 403, kimliğinizin tespit edildiği anlamına gelir. Doğrulama sayfası içeren bir 200 ise, doğrulama işleminin çözülmediği anlamına gelir. 200 adresinde makul ancak alakasız içerik varsa, bir tarpit içinde olabilirsiniz. 503 adresinde Cloudflare ara sayfası varsa, eski tarz doğrulama hâlâ devrede demektir ve kurulumunuzda başka bir sorun vardır. Her biri farklı bir duruma işaret eder.
Ardından sitenin mi yoksa kütüphanenin mi değiştiğini kontrol edin. Aynı URL'yi düz requests ile ve gerçek bir tarayıcıyla alın. Tarayıcı çalışıyorsa ve her iki Python yolu da aynı şekilde başarısız oluyorsa, site korumasını sıkılaştırmıştır ve kütüphanenin hiçbir yapılandırması yardımcı olmayacaktır. Düz requests çalışıyorsa, cloudscraper sorunu çözmek yerine yeni bir sorun yaratıyor demektir — bu durum olabilir ve ona ihtiyacınız olduğunu varsaymadan önce kontrol etmeye değer.
Davranışı geri kazanmayı umarak eski bir sürümü sabitlemeyin. Hata, bağlantının diğer ucunda, pakette değil. Yazıldıktan sonra eklenen bir algılama yöntemini tanıyan daha eski bir sürüm yoktur.
Artık bir işe yaramıyorsa kaldırın. Artık ortaya çıkmayan bir sorunu çözen bir bağımlılık, tedarik zincirinizde hiçbir fayda sağlamayan, bakımı yapılmayan bir pakettir. Siteler, Cloudflare’in daha agresif modlarına girip çıkarlar ve agresif bir dönemde oluşturulan bir iş akışı, artık kütüphane olmadan da sorunsuz çalışabilir. Test edin.
Ve bu hatayı düzeltilmesi gereken bir hata olarak değil, proje hakkında bir bilgi olarak değerlendirin. Çalışması için bakım görmeyen bir baypas kütüphanesine ihtiyaç duyan bir toplama boru hattı, yapısal bir soruna sahiptir ve onu düzeltmek için harcanan zaman, API'yi, beslemeyi veya sorulacak kişiyi bulmak için harcanamayacak zamandır. Deneyimlerimize göre, ikinci arama genellikle ilkinden daha başarılı olur.
Proxy'lerin Gerçekten Yer Alması Gereken Yerler
Konuyu eksiksiz ele almak adına, zira bu bizim işimiz ve gerçek kullanım alanları mevcut.
Hacmi adresler arasında dağıtmak: Hızınızı optimize ettiğinizde ve tek bir adres sınırlayıcı faktör olduğunda. Bu bir verim sorunudur ve proxy'ler bu sorunu çözer.
Bölgeye özgü içeriği görüntülemek: Bir yerdeymiş gibi görünmenin işin tüm amacı olduğu durumlarda.
Bir siteyi filtreleyen ağı aşmak; bu, sitenin değil, sizin tarafınızdaki bir sorundur.
Reklam doğrulama ve marka izleme; ödeme yaptığınız bölgelerden kendi harcamalarınızı kontrol etmek.
Bunların hiçbiri bir "baypas" değildir. Hepsi, adresin gerçekten de değişken olduğu durumlardır ve her birinde mantıklı başlangıç noktası veri merkezi bant genişliğidir — bizimki 0,14 $/GB'den başlar — ve yalnızca açıkça gerekli olduğu durumlarda 0,79 $/GB'ye yükselen konut bant genişliğine geçilir. Rakamlar, Eylül 2026'da kontrol edilen fiyatlandırma sayfamızdan alınmıştır.
Yapmayacağımız şey ise, başlık sırasını inceleyen bir makine öğrenimi modelini atlatacağı imasıyla bir plan satmaktır. IP adresinin işlevi bu değildir.
İnsanlar Ayrıca Şunu Soruyor
Cloudscraper hâlâ çalışıyor mu?
Modern Cloudflare koruması karşısında, genellikle hayır. PyPI'daki son sürüm Nisan 2023'tedir ve kütüphane, zorluğun esas olarak bir JavaScript kontrolü olduğu bir dönem için tasarlanmıştır. Mevcut algılama, istek özellikleri üzerinde makine öğrenimi, başlık sırası analizi ve JavaScript tabanlı başlıksız algılama kullanır; bunların hiçbiri bir zorluk çözücü tarafından ele alınmaz.
Cloudscraper hâlâ güncelleniyor mu?
Depo arşivlenmemiştir, ancak son sürüm Nisan 2023’tedir ve en son commit’ler — Haziran 2025’ten — işlevsel olmaktan ziyade idari niteliktedir. Değeri tamamen değişen bir hedefi takip etmeye bağlı olan bir kütüphane için sürüm tarihi, fiilen spesifikasyon niteliğindedir.
Cloudscraper neden 403 hatası veriyor?
Çünkü Cloudflare, kütüphanenin kontrol edemediği sinyaller aracılığıyla istemciyi tanımladı. Başlık sıralaması, TLS el sıkışma özellikleri ve makine öğrenimi ile belirlenen istek özellikleri, JavaScript zorluğunun çözülüp çözülmediğine bakılmaksızın hepsi bir Python HTTP istemcisine işaret ediyor.
Bir proxy, cloudscraper'ın çalışmasını sağlar mı?
Hayır, tabii adres itibarınız özellikle işaretlenmenizin nedeni değilse. Cloudflare'in bot puanı hakkındaki kendi açıklaması, istek özellikleri, sezgisel yöntemler, JavaScript algılamaları ve başlık sırası kuralları üzerine makine öğrenimini kapsar — bunların hiçbiri adresiniz değiştiğinde değişmez.
Cloudscraper yerine ne kullanabilirim?
Resmi bir API, bir iş ortağı veri akışı veya başka bir yerde korumasız olarak yayınlanan verileri arayın. Ardından, siteye doğrudan sormayı düşünün; bu, çoğu kişinin beklediğinden daha sık sorunu çözer ve sürekli çalışan bir erişim sağlar. Lisanslı veri sağlayıcıları, onları atlatmak için harcanan mühendislik zamanından genellikle daha ucuzdur.
Cloudflare'i atlatmak yasal mı?
Hizmet şartlarının ihlali, çoğu yargı alanında cezai bir suçtan ziyade sözleşmeye dayalı bir ihlaldir ve bunun gerçekçi sonucu erişimin engellenmesidir. Yasal olup olmadığı, yargı yetkisi alanına, söz konusu verilere ve bunların nasıl kullanıldığına bağlıdır. Koruma önlemi uygulayan bir site, bir tutum sergilemiştir; bu tutum, hukuki analizden bağımsız olarak dikkate alınmaya değerdir. Bu, hukuki tavsiye niteliğinde değildir.
Neden yararlı içerik barındırmayan bir 200 yanıtı alıyorum?
Bir tarpit'e ulaşmış olabilirsiniz. Cloudflare'in AI Labyrinth'i, tarayıcıları engellemek yerine, siteyle hiçbir ilgisi olmayan, tutarlı ve gerçeklere dayalı olarak oluşturulmuş içerik sunar. Tasarım gereği, her şey başarıyla geri döner ancak siz hiçbir şey toplayamazsınız.
Headless tarayıcı kullanmak daha iyi sonuç verir mi?
requeststabanlı bir kütüphaneden daha fazla sinyali algılar, çünkü gerçek bir tarayıcı gerçek TLS ve başlık özellikleri üretir. Ayrıca bant genişliği ve işlem gücü açısından çok daha fazla maliyetlidir ve Cloudflare'in JavaScript algılama sistemleri özellikle başsız tarayıcıları hedef alır. Bu bir çözümden ziyade farklı bir ödünleşmedir ve "terimler" sorusu değişmemiştir.
Sonuç
Cloudscraper gerçek bir sorunu başarılı bir şekilde çözdü; ancak çözdüğü sorun, kütüphanenin geliştirildiği şekliyle artık mevcut değil. Son işlevsel sürüm, diğer tarafta yaşanan birkaç nesil değişimin öncesine ait; ayrıca kütüphanenin kendi README dosyasında, üç yılı aşkın süredir gerçekleşmemiş olan sık güncellemeler vaat ediliyor.
Bunun nedenini anlamak, bir alternatif bulmaktan daha yararlıdır. Eski soru, bir istemcinin JavaScript çalıştırıp çalıştıramayacağıydı ve JavaScript motoruna sahip bir kütüphane bu soruyu cevaplayabilirdi. Güncel soru ise, istemciyle ilgili her şeyin — başlık sırası, TLS özellikleri, tarayıcı sinyalleri, davranış — iddia ettiği şeyle uyuşup uyuşmadığıdır; Chrome olduğunu iddia eden bir Python HTTP oturumu, neyi çözerse çözsün, bu unsurların birçoğunda aynı anda başarısız olmaktadır.
İşte bu yüzden de size çözüm olarak proxy satmayacağız. Cloudflare’in bot puanının nasıl hesaplandığına dair kendi açıklaması, istemci adresinden hiç bahsetmiyor. Daha iyi adresler, adres sorunlarının çözümüne yardımcı olur; başka hiçbir şeye değil.
İşe yarayan yöntem ise gösterişsiz ve kalıcıdır: API’yi bulun, beslemeyi bulun, başka bir yerde yayınlanan verileri bulun ya da sorun. Özellikle sonuncusunun başarı oranı, tartışmalarda öne sürüldüğünden çok daha yüksektir ve bu, birisi bir algılama güncellemesi yayınladığında her seferinde yeniden gözden geçirilmesi gerekmeyen tek yoldur.
