Proxy rotasyonu bir koltuk değneğidir, bir çözüm değil. Çoğu kazıma işlemi, IP adreslerini bot karşıtı sistemlerin ölçtüğü tek sinyal olarak ele aldıkları için başarısız olur. Gerçek şu ki, modern bot yöneticileri — Akamai Bot Manager, Cloudflare Turnstile, Datadome — kaynak IP'nizden çok daha fazlasını parmak izi olarak alır. Ücretsiz genel proxy havuzu döndürmek, bu sistemlere karşı size neredeyse hiçbir şey kazandırmaz ve çoğu zaman işleri daha da kötüleştirir.
IP Rotasyonu Yanılsaması
Her istekte IP'leri döndürdüğünüzde, kendinizi bir kazıyıcı olarak belli edersiniz. İnsan tarama desenleri yapışkan oturumlar gösterir — dakikalar veya saatler boyunca tek bir IP, tutarlı tarayıcı parmak izleri ve tahmin edilebilir istek aralıkları. requests gibi araçlar, bir Session nesnesi ve dönen bir proxy listesi ile tüm bu sinyalleri bozar. Akamai'nin X-Akamai-Device-Fingerprint başlığı ve Cloudflare'in cf-request-id korelasyonu, TLS parametreleri, HTTP/2 ayarları ve zamanlama aynı kaldığında farklı IP'lerden gelen istekleri ilişkilendirebilir. Datadome'un JavaScript challenge'ı, proxy değişikliklerinden etkilenmeyen headless tarayıcı yapay izlerini kontrol eder. Tam istemci parmak izini döndürmeden IP'leri döndürmek, plakanızı değiştirip aynı arabayı sürmek gibidir — gişe kameraları sizi yine de işaretler.
Düşük hızlı, düşük hacimli kazıma işlemleri için, yalnızca temel IP tabanlı hız sınırlaması kullanan sitelere karşı (örneğin, JavaScript challenge'ı olmayan dakikada 10 istek sınırı), tek bir konut IP'si genellikle yeterlidir. Yıllardır devlet veri portallarına ve genel API'lere karşı tek bir statik IP ve kibar bir time.sleep(2) kullanarak kazıyıcılar çalıştırdım. Proxy gerekmez. Kural basit: site 50 istekten sonra bir challenge sayfası veya CAPTCHA sunmuyorsa, rotasyona ihtiyacınız yoktur.
IP Adresinin Ötesinde: Parmak İzi Alma
Bot karşıtı sistemler artık istek başına düzinelerce sinyal topluyor. User-Agent dizesini taklit etmek önemsizdir, ancak Accept-Language, Sec-CH-UA, Connection ve Accept-Encoding sırası öyle değildir. Daha da kritik olarak, TLS parmak izi alma — JA3 hash'inde standartlaştırılmıştır (bkz. JA3) — istemci kütüphanesini şifre takımı sırası ve TLS uzantı listesi ile tanımlar. Python'un requests kütüphanesi (urllib3 aracılığıyla) Chrome 124'ten farklı bir JA3 hash'i üretir. Cloudflare'in Turnstile'ı ve Datadome, JA3'ü kontrol eder. Aynı TLS yığınını korurken IP'leri döndürmek, her isteğin aynı otomatik istemci gibi görünmesine neden olur, sadece çıkış düğümleri arasında atlar. Ücretsiz proxyler bunu daha da kötüleştirir çünkü genellikle güncel olmayan OpenSSL sürümleri çalıştırır veya zaten kara listeye alınmış bot benzeri TLS yapılandırmaları kullanır.
HTTP/2 parmak izi alma daha da ileri gider. SETTINGS çerçevesi, pencere güncelleme değerleri ve akış eşzamanlılık parametreleri, Akamai'nin Bot Manager'ının oturumlar arasında izlediği benzersiz bir "HTTP/2 parmak izi" oluşturur. HTTP/2 uygulamasını da döndürmeyen bir dönen proxy havuzunu kümelemek önemsizdir. Bu kontrollerden kaçmanın tek yolu, gerçek bir tarayıcı motoru (Puppeteer, Playwright) veya belirli bir tarayıcı sürümünü taklit eden özenle hazırlanmış bir TLS/HTTP yığını kullanmaktır — ve o zaman bile, belirli bir oturumdaki istekler arasında aynı parmak izini sürdürmeniz gerekir.
Ücretsiz Genel Proxy Havuzlarının Ekonomisi
Ücretsiz genel proxy listeleri, testlerimde yüzde 60-80 başarısızlık oranına sahiptir. Çoğu proxy ya geldiği anda ölüdür, ana bilgisayar tarafından kısıtlanmıştır veya büyük bot yöneticileri tarafından zaten işaretlenmiştir. Genel bir dizinden kazınan ücretsiz bir SOCKS5 proxy'nin ortalama ömrü 15 dakikanın altındadır. 500 proxyden oluşan dönen bir havuzu sürdürmek, saatte binlerce IP tükettiğiniz anlamına gelir ve isteklerinizin %80'i ya zaman aşımına uğrar ya da 403 döndürür. Bant genişliği güvenilmezdir, gecikme artışları yaygındır ve birçok ücretsiz proxy reklam enjekte eder veya yanıt gövdelerini değiştirir. Ücretli konut proxy ağları (örneğin, Bright Data, Oxylabs) %95+ başarı oranları ve yapışkan oturum seçenekleri sunar, ancak GB başına 10-20 dolar maliyetle. Ölçek açısından, matematik yalnızca yüksek değerli hedeflerde IP tabanlı engelleri aşmanız gerektiğinde konut proxylerini tercih eder. Diğer her şey için, uygun istek hızlandırma ile tek bir temiz IP, kaotik bir ücretsiz havuzdan daha iyi performans gösterir.
Rotasyon Gerçekten Ne Zaman İşe Yarar
Proxy rotasyonu, belirli bir tehdide karşı etkilidir: IP başına sıfırlanan IP tabanlı hız sınırları. Bir site basit bir X-Forwarded-For kontrolü veya IP başına bir token kovası kullanıyorsa, her istekten sonra döndürmek sınırı aşar. Bu, bot tespitini hiç güncellememiş daha küçük e-ticaret sitelerinde ve eski API'lerde yaygındır. Bu durumlarda, ücretsiz bir proxy havuzu bile işe yarar — ancak yalnızca başarısız proxyleri atan ve hızlı bir şekilde yenilerini döngüye sokan bir yeniden deneme mantığı uygularsanız.
İşte requests ve bir yeniden deneme-rotasyon döngüsü kullanan minimal bir Python örneği. proxy_list içinde bir proxy URL listesi ve bir hedef url varsayar:
import requests
from itertools import cycle
proxy_pool = cycle(proxy_list)
max_retries = 5
for attempt in range(max_retries):
proxy = next(proxy_pool)
try:
resp = requests.get(
url,
proxies={"http": proxy, "https": proxy},
timeout=10,
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ..."}
)
if resp.status_code == 200:
break
except (requests.ConnectionError, requests.Timeout):
continue
else:
raise RuntimeError("All proxies failed")
Bu desen yalnızca sitenin tespiti tamamen IP tabanlı olduğunda çalışır. İnsan zamanlamasını taklit etmek için istekler arasına bir time.sleep(random.uniform(1,3)) ekleyin. Turnstile veya Datadome çalıştıran siteler için bu kod her seferinde başarısız olacaktır — challenge sayfası, proxy'den bağımsız olarak bir 403 veya CAPTCHA döndürecektir. Bu durumlarda, dönen bir IP listesi değil, gerçek bir parmak izine sahip bir headless tarayıcıya ihtiyacınız vardır.
Yapışkan oturumlar — bir dizi ilgili istek için aynı IP'yi tutmak — genellikle istek başına rotasyondan daha etkilidir. Birçok e-ticaret sitesi, bir tarama oturumu için tek bir IP bekler (örneğin, sepete ürün ekleme, ödeme yapma). Oturum ortasında döndürmek dolandırıcılık bayraklarını tetikler. Bir proxy havuzu kullanın ancak istek başına değil, oturum başına bir IP atayın. Ücretsiz proxyler nadiren yapışkan oturumları destekler çünkü aynı IP birden fazla kullanıcı tarafından yeniden kullanılır; oturum verilerinde çapraz bulaşma görürsünüz. Ücretli konut proxyleri, doğal tarama davranışıyla uyumlu yapışkan oturum süreleri (5-30 dakika) sunar.
Rotasyonu yalnızca hedefin tespit yığınını anladığınızda seçin. Önce tek bir IP ile test edin. Yalnızca bir hız sınırına takılırsanız rotasyon ekleyin. Ve üretim için asla ücretsiz proxylere güvenmeyin — başarısızlık oranları, size ucuz bir konut planından daha fazla mühendislik zamanına ve kayıp veriye mal olacaktır.