Python requests ile Proxy Kullanımı

2 views

Python 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.

Top