Eğitimler 2 dk okuma
Python ile Rotating Proxy Kullanımı (requests Rehberi)
Adım adım: Python requests'i rotating proxy gateway'ine bağlayın; ülke hedefleme, sticky oturum, yeniden deneme ve eşzamanlılık ekleyin.

Bu rehber Python requests trafiğini bir rotating proxy gateway'i üzerinden nasıl göndereceğinizi gösterir; ardından üretimde gereken parçaları ekler: konum hedefleme, sticky oturum, yeniden deneme ve eşzamanlılık.
1. requests'i kurun
pip install requests
2. Proxy üzerinden ilk isteği gönderin
Endpoint'i panelinizden kopyalayın. İçinde kullanıcı adınız, şifreniz, gateway adresi ve istediğiniz havuzun portu bulunur.
import requests
PROXY = "http://USER-zone-premium:PASS@gate.example.com:8000"
proxies = {"http": PROXY, "https": PROXY}
r = requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30)
print(r.json()["ip"], r.json()["country"])
İki kez çalıştırın. Gateway varsayılan olarak her istekte IP değiştirdiği için her seferinde farklı bir IP görmelisiniz.
3. Ülke hedefleyin
Ülke kodunu kullanıcı adına ekleyin:
PROXY = "http://USER-zone-premium-country-tr:PASS@gate.example.com:8000"
Artık her istek Türkiye'den çıkar. Residential havuzlarda şehir hedefleme de aynı şekilde çalışır, örneğin -country-tr-city-istanbul.
4. Sticky oturumla aynı IP'yi koruyun
Giriş yapmak gibi bazı akışlar bir süre aynı IP'ye ihtiyaç duyar. Bir oturum kimliği ve dakika cinsinden süre ekleyin:
import uuid
session_id = uuid.uuid4().hex[:8]
PROXY = f"http://USER-zone-premium-country-tr-session-{session_id}-ttl-10:PASS@gate.example.com:8000"
Bu kullanıcı adını kullanan tüm istekler 10 dakika boyunca aynı çıkış IP'sini korur. Yeni IP istediğinizde yeni bir session_id üretin.
5. Yeni IP ile yeniden deneyin
İyi IP'ler de bazen başarısız olur. Engellenen veya hata veren istekleri yeniden deneyin; rotasyon açıkken her deneme farklı bir adresten çıkar.
import time
def fetch(url, tries=3):
for attempt in range(tries):
try:
r = requests.get(url, proxies=proxies, timeout=30)
if r.status_code in (403, 429) or r.status_code >= 500:
raise requests.HTTPError(r.status_code)
return r
except requests.RequestException:
time.sleep(1.5 * (attempt + 1))
return None
6. Eşzamanlılıkla ölçekleyin
Gateway aynı anda çok sayıda bağlantıyı kabul eder; thread havuzuyla paralelleştirebilirsiniz:
from concurrent.futures import ThreadPoolExecutor
urls = [f"https://example.com/sayfa/{i}" for i in range(1, 201)]
with ThreadPoolExecutor(max_workers=20) as pool:
for resp in pool.map(fetch, urls):
if resp is not None:
print(resp.url, resp.status_code)
10 ile 20 worker ile başlayın, paneldeki başarı oranını izleyerek sayıyı artırın.
Sık karşılaşılan hatalar
- 407 Proxy Authentication Required: kullanıcı adı veya şifre yanlış ya da IP'niz whitelist'te değil.
- Zaman aşımı:
timeoutdeğerini artırın veya daha yakın bir ülke seçin. - Çok sayıda 403: hedefi premium veya mobil havuza taşıyın ve istek hızınızı düşürün.
Sonraki adım
Hedefinize hangi havuzun uyduğundan emin değil misiniz? Residential, mobil ve datacenter proxy farkı yazısını okuyun.