İçeriğe geç

Proxy ile Web Scraping: Gelişmiş Engel Aşma Teknikleri

Кейсы
Proxy ile Web Scraping: Gelişmiş Engel Aşma Teknikleri

İleri seviye web scraping, ağ desenlerini, TLS imzalarını ve tarayıcı davranışını analiz eden modern anti-bot sistemlerini aşmak için çok katmanlı bir strateji gerektirir. Başarı, yüksek kaliteli residential proxy'leri JA3 fingerprint taklidi, HTTP/2 başlık senkronizasyonu ve insan benzeri davranış emülasyonu gibi teknik manevralarla birleştirmeye bağlıdır.

Anti-bot tespitinin evrimi: IP kara listesinin ötesi

Akamai, Cloudflare (Bot Management) ve DataDome gibi modern anti-bot çözümleri, basit IP tabanlı rate limiting'in çok ötesine geçti. Belirli bir IP adresini engellemek hâlâ temel savunma olsa da, gelişmiş sistemler artık binlerce farklı proxy arasında rotasyon yapan otomatik scriptleri bile "fingerprinting" ile tespit ediyor. Bu değişim, yalnızca bir proxy havuzuna erişmenin artık yeterli olmadığı anlamına gelir; scraper'ınızın ilettiği teknik meta verileri de yönetmeniz gerekir.

TLS fingerprinting ve JA3 imzaları

Sitelerin scraper'ları tespit etmesinin en etkili yollarından biri TLS (Transport Layer Security) el sıkışmasıdır. Bir istemci sunucuya bağlandığında, desteklediği şifreleme takımlarını, uzantıları ve eliptik eğrileri içeren bir "Client Hello" paketi gönderir. Bu parametrelerin bileşimi, JA3 hash'i olarak bilinen benzersiz bir imza oluşturur.

requests veya urllib gibi standart Python kütüphaneleri, standart bir Chrome ya da Firefox tarayıcısından belirgin biçimde farklı bir JA3 hash'i üretir. Bir anti-bot sistemi GProxy'den gelen residential bir IP görüp Python'a özgü bir TLS imzası tespit ederse, isteği anında bot olarak işaretler. İleri seviye scraping kurulumları, gerçek bir tarayıcının TLS el sıkışmasını taklit etmek için tls-client veya curl-impersonate gibi kütüphaneler kullanır.

ASN itibarının rolü

Her IP adresi bir Autonomous System Number (ASN) altına aittir. Anti-bot sistemleri ASN'leri üç ana gruba ayırır: veri merkezi, residential ve mobil. Veri merkezi IP'leri hızlı ve ucuzdur, ancak bilinen sunucu çiftliklerinden (AWS, DigitalOcean, GCP) geldikleri için en düşük güven puanına sahiptir. GProxy tarafından sağlanan residential IP'ler, Comcast veya AT&T gibi internet servis sağlayıcılarına (ISP) aittir ve bu da onları gerçek ev kullanıcılarından ayırt edilemez kılar. Mobil proxy'ler hücresel ağları (4G/5G) kullanır ve en yüksek güven seviyesini sunar; çünkü aynı IP'yi genellikle birden fazla kullanıcı paylaşır ve bu da sitelerin onları engellemesini riskli hale getirir.

Proxy ile Web Scraping: gelişmiş engel aşma teknikleri

Stratejik proxy rotasyonu ve oturum yönetimi

Etkili scraping, performans ile gizliliği dengeleyen bir rotasyon mantığı gerektirir. Her isteğin yeni bir IP kullandığı basit round-robin rotasyonu, giriş gerektiren veya çok adımlı akışları olan siteler için çoğu zaman ters teper. Bu durumlarda "sticky session" zorunludur.

Sticky session'lar ile rastgele rotasyon karşılaştırması

Sticky session'lar, aynı IP adresini belirli bir süre boyunca veya bir dizi istek boyunca korumanıza olanak tanır. Bu, kullanıcının birkaç sayfayı gezmesi, sepete ürün eklemesi ve ardından ödeme yapması beklenen e-ticaret siteleri için kritiktir. Bu adımların her birinde farklı bir IP kullanmak "oturum ele geçirme" alarmlarını tetikler. GProxy, bir session_id belirtmenize izin veren backconnect endpoint'leri sunar; böylece o oturumdaki tüm istekler aynı residential düğüm üzerinden yönlendirilir.

Coğrafi konum ve gecikme optimizasyonu

İleri seviye scraper'lar, bölgesel engelleri aşmak veya yerelleştirilmiş fiyatları görmek için belirli coğrafi konumları hedefler. Ancak teknik bir ödünleşim vardır: proxy hedef sunucudan ne kadar uzaksa gecikme o kadar yüksektir. Yüksek frekanslı scraping için proxy konumunu hedef sunucunun veri merkeziyle eşleştirmelisiniz. Hedef AWS us-east-1'de (Virginia) barındırılıyorsa, Virginia/Washington D.C. bölgesindeki GProxy residential düğümlerini kullanmak RTT'yi (Round Trip Time) düşürür, istek zaman aşımı olasılığını azaltır ve genel verimi artırır.


import httpx

# GProxy residential endpoint'leri ile sticky session kullanim ornegi
proxy_url = "http://username-session-8821:[email protected]:8000"

def fetch_data(target_url):
    with httpx.Client(proxies={"all://": proxy_url}, http2=True) as client:
        # session-8821 son eki, bu bloktaki tum isteklerde ayni IP'nin kullanilmasini saglar
        response = client.get(target_url)
        print(f"Status: {response.status_code}, IP: {response.json().get('origin')}")

fetch_data("https://httpbin.org/ip")

Tarayıcı fingerprinting'ini aşmak

Temiz bir residential IP'niz olsa bile scraper'ınızın maskesi tarayıcı fingerprinting ile düşürülebilir. Bu, bir tarayıcının benzersiz yapılandırmasını belirlemek için kullanılan tekniklerin bütünüdür. Playwright veya Puppeteer gibi bir headless tarayıcı kullanıyorsanız, bu özellikleri etkin biçimde taklit etmeniz gerekir.

Canvas ve WebGL taklidi

Siteler, gizli şekiller ve metinler çizmek için HTML5 Canvas API'sini kullanır. Donanım, işletim sistemi ve grafik sürücülerindeki farklılıklar nedeniyle ortaya çıkan görüntü verisi her cihaza özgüdür. Anti-bot scriptleri kullanıcıları takip etmek için bu "canvas fingerprint"i üretir. Bunu aşmak için scraper'lar, canvas çıktısına hafif ve tutarlı bir "gürültü" ekleyen scriptler enjekte etmelidir; böylece fingerprint hem benzersiz hem de meşru görünür.

Donanım eşzamanlılığı ve bellek

Anti-bot scriptleri navigator.hardwareConcurrency (CPU çekirdekleri) ve navigator.deviceMemory değerlerini kontrol eder. Headless tarayıcılar genellikle "bot" işareti gibi davranan varsayılan değerler (2 çekirdek veya 0 bellek gibi) döndürür. Sağlam bir scraping kurulumu bu değerleri gerçekçi sayılarla — örneğin 4, 8 veya 16 çekirdek — geçersiz kılarak modern bir tüketici dizüstü bilgisayarının profiline uydurur.

Başlık tutarlılığı ve sırası

HTTP başlıklarının sırası ince ama güçlü bir tespit vektörüdür. Chrome başlıkları belirli bir sırayla gönderir (örneğin Host, Connection, sec-ch-ua, sec-ch-ua-mobile, User-Agent). Scraper'ınız önce User-Agent gönderirse işaretlenir. Ayrıca modern tarayıcılar "Client Hints" (sec-ch- ile başlayan başlıklar) kullanır. User-Agent değeriniz Chrome 120'de olduğunuzu iddia ederken Client Hints başlıklarınız eksikse veya Chrome 115 belirtiyorsa, bu tutarsızlık engellemeyi tetikler.

Proxy ile Web Scraping: gelişmiş engel aşma teknikleri

İleri seviye scraping için proxy türlerinin karşılaştırması

Doğru proxy türünü seçmek, hedefin güvenlik seviyesine ve bütçenize bağlıdır. Aşağıdaki tablo, profesyonel scraping operasyonlarında kullanılan üç ana kategoriyi karşılaştırır.

Özellik Veri merkezi proxy'leri Residential proxy'ler Mobil (4G/5G) proxy'ler
Kaynak Bulut sağlayıcılar (AWS, OVH) Ev ISP bağlantıları Hücresel ağlar
Tespit riski Yüksek (ASN'yi engellemek kolay) Düşük (meşru kullanıcı IP'leri) En düşük (paylaşımlı IP havuzları)
Başarı oranı Korumalı sitelerde %40-60 %95-99 %99,9
Hız Son derece hızlı (1-10 Gbps) Orta (10-100 Mbps) Değişken (sinyale bağlı)
En iyi kullanım alanı Yüksek hacimli, düşük güvenlikli siteler E-ticaret, SEO, sosyal medya Instagram, TikTok, yüksek güvenlikli hedefler

Davranış emülasyonu ve sezgisel analiz

Modern anti-bot sistemleri, bir "kullanıcının" sayfayla nasıl etkileşime girdiğini analiz eder. Fare hareketlerini, kaydırma derinliğini ve tuş vuruşları arasındaki süreyi izler. Bir sayfa yüklenip form 0,1 saniyede gönderiliyorsa, bu apaçık bir bottur. "v3" tarzı CAPTCHA'ları ve davranışsal sezgisel kontrolleri aşmak için insan benzeri etkileşim şarttır.

Rastgele gecikmeler uygulamak

Sabit sleep zamanlayıcıları kullanmayın. Bunun yerine gecikmeleri üretmek için Gauss dağılımı kullanın. Tipik bir insanın bir düğmeyi bulması 2 ila 5 saniye sürüyorsa, scriptiniz de bu değişkenliği yansıtmalıdır. Bu, "hız" tespit filtrelerinin isteklerinizde mekanik bir desen bulmasını engeller.

Fare yolunun rastgeleleştirilmesi

Playwright gibi araçlar kullanırken .click() yöntemini doğrudan bir öğe üzerinde çağırmaktan kaçının; çünkü bu genellikle tıklamayı tam merkez koordinatlarında (0.5, 0.5) tetikler. Bunun yerine öğenin sınırlayıcı kutusunu hesaplayın ve bu kutunun içinde rastgele bir koordinata tıklayın. Ayrıca noktalar arasında düz çizgiler yerine "eğrisel" fare hareketleri uygulayın; düz çizgi hareketi otomatik scriptlerin ayırt edici işaretidir.

"İnsan" gezinme akışı

Gerçek bir kullanıcı, hiçbir referrer olmadan doğrudan bir URL ile derin bir ürün sayfasına nadiren gider. Güveni artırmak için oturumunuza ana sayfayı veya bir arama motorunu ziyaret ederek başlayın, ardından hedef sayfaya "gezinin". Bu, Referer başlığını doldurur ve sunucunun takip scriptlerine doğal görünen bir çerez geçmişi oluşturur.

Ölçek için altyapı optimizasyonu

Günde 1.000 istekten 1.000.000 isteğe ölçeklendikçe altyapı, bypass teknikleri kadar önemli hale gelir. GProxy'den gelen devasa bir proxy havuzunu yönetmek verimli kaynak tahsisi gerektirir.

Headless ve headful tarayıcılar

Tam bir tarayıcı örneği (Chrome/Webkit) çalıştırmak ciddi CPU ve RAM tüketir (örnek başına yaklaşık 100-200 MB). Birçok hedefte, ilk zorlukları çözüp gerekli çerezleri aldıktan sonra saf bir HTTP istemcisine "geçebilirsiniz". İlk el sıkışma için tarayıcı, toplu veri çıkarımı için hafif bir HTTP istemcisi kullanan bu "hibrit" yaklaşım altyapı maliyetlerini %80 azaltabilir.

403 ve 429 hatalarını ele almak

İleri seviye bir scraper farklı hata türlerini birbirinden ayırt etmelidir. 429 Too Many Requests durum kodu, belirli bir IP veya ASN için rotasyon hızınızı düşürmeniz gerektiğini gösterir. 403 Forbidden ise çoğu zaman fingerprint'inizin tespit edildiği anlamına gelir. Mantığınız, hata oranı belirli bir eşiği (genellikle %5) aştığında scraping'i duraklatan veya proxy sağlayıcısını değiştiren (örneğin veri merkezinden GProxy Residential'a geçen) bir "circuit breaker" içermelidir.

Önemli çıkarımlar

Yüksek güvenlikli bir ortamda başarılı web scraping, teknik uyum üzerine kurulu bir kedi-fare oyunudur. IP'nin ASN'sinden TLS el sıkışmasına ve davranış desenlerine kadar tüm yığına odaklanarak en gelişmiş savunmalara karşı bile yüksek başarı oranlarını koruyabilirsiniz.

  • IP kalitesine öncelik verin: isteklerinizin güvenilir ISP ağlarından çıkmasını sağlamak için GProxy residential proxy'leri kullanın; bu, anında engellenme olasılığını belirgin biçimde azaltır.
  • TLS ve başlıkları eşleştirin: scraping kütüphanenizin TLS imzasının ve HTTP başlık sırasının Chrome gibi modern bir tarayıcıyı birebir taklit ettiğinden emin olun.
  • Davranış mantığı uygulayın: sezgisel temelli anti-bot sistemlerini aşmak için rastgele gecikmeler, eğrisel fare hareketleri ve gerçekçi gezinme akışları kullanın.

Pratik ipucu 1: büyük ölçekli bir tarama başlatmadan önce JA3 fingerprint'lerinizi ja3er.com veya tls.peet.ws gibi araçlarla mutlaka kontrol edin. Scraper'ınızın hash'i yaygın bir tarayıcıyla eşleşmiyorsa, proxy kalitesi ne olursa olsun engellenirsiniz.

Pratik ipucu 2: Cloudflare arkasındaki siteleri scrape ederken HTTP/2'yi önceliklendirin. Modern tarayıcıların çoğu varsayılan olarak HTTP/2 kullanır ve bunu desteklememek anti-bot algoritmaları için büyük bir uyarı işaretidir.

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.