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.