Python requests ile Proxy Kullanımı
2 viewsPython requests ile Proxy Kullanımı
requests kütüphanesi, Python’da HTTP istekleri göndermek için en popüler ve basit kütüphanedir. Proxy desteği de oldukça güçlüdür. Bu makalede requests ile proxy kullanımını adım adım ve çalışan kod örnekleriyle anlatacağız.
1. requests Kütüphanesini Yükleme
Öncelikle requests kütüphanesini yükleyin:
Bash
pip install requests
SOCKS5 proxy desteği için ek olarak şu paketi de yükleyin:
Bash
pip install requests[socks]
2. Basit HTTP/HTTPS Proxy Kullanımı
En temel proxy kullanımı şu şekildedir:
Python
import requests proxies = { "http": "http://proxy_ip:proxy_port", "https": "http://proxy_ip:proxy_port" } response = requests.get("https://httpbin.org/ip", proxies=proxies) print(response.json())
Not: Hem http hem de https için aynı proxy’yi kullanabilirsiniz.
3. Proxy Kimlik Doğrulama (Username & Password)
Proxy’niz kullanıcı adı ve şifre gerektiriyorsa şu şekilde kullanın:
Python
import requests proxies = { "http": "http://kullanici_adi:sifre@proxy_ip:proxy_port", "https": "http://kullanici_adi:sifre@proxy_ip:proxy_port" } response = requests.get("https://httpbin.org/ip", proxies=proxies) print(response.json())
4. SOCKS5 Proxy Kullanımı
SOCKS5 proxy kullanmak için requests[socks] paketi yüklü olmalıdır:
Python
import requests proxies = { "http": "socks5://proxy_ip:proxy_port", "https": "socks5://proxy_ip:proxy_port" } response = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10) print(response.json())
SOCKS5 + Kimlik Doğrulama:
Python
proxies = { "http": "socks5://kullanici_adi:sifre@proxy_ip:proxy_port", "https": "socks5://kullanici_adi:sifre@proxy_ip:proxy_port" }
5. Tam Örnek: Proxy ile GET İsteği
Python
import requests def get_with_proxy(url, proxy_ip, proxy_port, username=None, password=None, proxy_type="http"): if username and password: proxy_url = f"{proxy_type}://{username}:{password}@{proxy_ip}:{proxy_port}" else: proxy_url = f"{proxy_type}://{proxy_ip}:{proxy_port}" proxies = { "http": proxy_url, "https": proxy_url } try: response = requests.get(url, proxies=proxies, timeout=15) return response.json() except requests.exceptions.ProxyError: return {"error": "Proxy bağlantı hatası"} except requests.exceptions.Timeout: return {"error": "İstek zaman aşımına uğradı"} # Kullanım result = get_with_proxy( url="https://httpbin.org/ip", proxy_ip="185.XX.XX.XX", proxy_port=8080, username="kullanici", password="sifre", proxy_type="http" ) print(result)
6. Yaygın Hatalar ve Çözümleri
| Hata | Olası Neden | Çözüm |
|---|---|---|
| ProxyError | Yanlış proxy IP/port | Proxy bilgilerini kontrol edin |
| ConnectTimeout | Proxy yavaş veya erişilemez | Timeout süresini artırın |
| SSLError | HTTPS proxy sorunu | verify=False (güvenli değil) veya doğru proxy kullanın |
| ConnectionError | Proxy sunucusu kapalı | Farklı proxy IP’si deneyin |
7. En İyi Uygulamalar
- Her zaman timeout parametresi kullanın.
- Proxy havuzu oluşturup rotasyon yapın (birden fazla proxy).
- Hata yönetimi için try-except blokları kullanın.
- Hassas işlemler için Residential veya Mobile Proxy tercih edin.
- Üretim ortamında proxy loglaması yapın.
Sonuç
requests kütüphanesi ile proxy kullanımı oldukça basittir. Hem HTTP/HTTPS hem de SOCKS5 proxy’leri kolayca entegre edebilirsiniz. Proxy kimlik doğrulama ve hata yönetimi ile daha robust (sağlam) scriptler yazabilirsiniz.
Bir sonraki makalemizde Selenium ile Proxy Kullanımı konusunu detaylı olarak inceleyeceğiz.