Selenium, web otomasyonu için yıllardır altın standart. Test koşumu, regresyon, scraping ya da hesap yönetimi — hepsinde proxy entegrasyonu kritik. Bu yazıda Python tarafında Selenium ile trproxy bağlantısını sıfırdan kuruyoruz.
Temel Yaklaşımlar
Selenium'da proxy üç farklı katmanda tanımlanabilir: (1) ChromeOptions üzerinden komut satırı argümanı, (2) Capabilities API, (3) Selenium-Wire eklentisi ile authenticated proxy. İlk iki yöntem IP whitelist proxy için, üçüncüsü kullanıcı/şifre proxy için uygundur.
1. Whitelist Proxy (Basit)
from selenium import webdriver
opts = webdriver.ChromeOptions()
opts.add_argument('--proxy-server=http://tr.trproxy.tr:7777')
driver = webdriver.Chrome(options=opts)
driver.get('https://ifconfig.me')
2. Authenticated Proxy
Chrome komut satırından kullanıcı/şifre proxy desteklemez. Çözüm: Selenium-Wire kütüphanesi.
from seleniumwire import webdriver
opts = {
'proxy': {
'http': 'http://kullanici:sifre@tr.trproxy.tr:7777',
'https': 'http://kullanici:sifre@tr.trproxy.tr:7777',
'no_proxy': 'localhost,127.0.0.1'
}
}
driver = webdriver.Chrome(seleniumwire_options=opts)
3. Undetected-chromedriver
Cloudflare ve benzeri anti-bot çözümleri standart Chromedriver'ı kolayca tespit eder. undetected-chromedriver, navigator.webdriver gibi bot belirteçlerini kaldırır.
import undetected_chromedriver as uc
opts = uc.ChromeOptions()
opts.add_argument('--proxy-server=http://tr.trproxy.tr:7777')
driver = uc.Chrome(options=opts)
Per-Profile Proxy
Aynı makinede paralel 50 Selenium worker'ı çalıştırıyorsanız her birine farklı IP atamak isteyebilirsiniz. trproxy gateway'inde port aralığı (örn. 7777-7826) tahsis ediyoruz; her worker farklı port = farklı sticky IP.
Fingerprint Yönetimi
Proxy + undetected-chromedriver bile yetmez. User-agent, ekran çözünürlüğü, dil ayarı, timezone, fontlar — hepsi tutarlı olmalı. selenium-stealth eklentisi temel fingerprint düzeltmesini otomatik yapar.
İyi otomasyon, "insan gibi davran" felsefesinin tekrarıdır. Her şüpheli sinyali kaldırın, sonra bir tane daha bulun.
Sık Karşılaşılan Hatalar
- HTTPS sitelerde sertifika hataları →
--ignore-certificate-errors - Proxy yanıt vermiyor → Network açıkta mı, kimlik doğru mu kontrol et
- WebRTC IP sızıntısı → Chrome flag ile WebRTC handling policy değiştir
- DNS leak → System DNS yerine proxy üzerinden DNS
Production İpuçları
Headless modda bile fingerprint sızıntısı olur; non-headless + Xvfb daha güvenli. Saatte bir sticky session reset edin. Logları yapılandırın: başarısız sayfa, IP, timestamp.
Selenium projenize özel proxy yapılandırma desteği için WhatsApp üzerinden ekibimize ulaşın.