İçeriğe geç
Guides 3 dk okuma 994 görüntülenme

Python'da httpx ile proxy kullanımı

httpx ile proxy kullanımı: senkron ve asenkron modlar, SOCKS5, proxy üzerinden HTTP/2 ve requests ile karşılaştırma.

Python'da httpx ile proxy kullanımı

Python'da httpx ile proxy kullanımı

httpx ve proxy'ler

httpx, Python için hem senkron hem de asenkron çalışma modlarını destekleyen modern bir HTTP kütüphanesidir. Temel avantajı, ek kütüphane gerektirmeden HTTP/2 ve SOCKS proxy'lere yerleşik destek sunmasıdır.

Kurulum

pip install httpx
# SOCKS desteği için:
pip install httpx[socks]
# HTTP/2 için:
pip install httpx[http2]

Senkron mod

HTTP proxy

import httpx

proxy = "http://user:pass@proxy_ip:port"
response = httpx.get("https://httpbin.org/ip", proxy=proxy)
print(response.json())

HTTP ve HTTPS için farklı proxy'ler

proxies = {
    "http://": "http://proxy1:port",
    "https://": "http://proxy2:port",
}

with httpx.Client(proxy=proxies) as client:
    response = client.get("https://httpbin.org/ip")
    print(response.json())

SOCKS5 proxy

import httpx

proxy = "socks5://user:pass@proxy_ip:port"
with httpx.Client(proxy=proxy) as client:
    response = client.get("https://httpbin.org/ip")
    print(response.json())

Asenkron mod

Temel örnek

import httpx
import asyncio

async def fetch():
    proxy = "http://user:pass@proxy_ip:port"
    async with httpx.AsyncClient(proxy=proxy) as client:
        response = await client.get("https://httpbin.org/ip")
        print(response.json())

asyncio.run(fetch())

Paralel istekler

import httpx
import asyncio

async def fetch_url(client, url):
    try:
        response = await client.get(url, timeout=10)
        return response.text
    except Exception as e:
        return None

async def main():
    proxy = "http://user:pass@proxy_ip:port"
    urls = [f"https://example.com/page/{i}" for i in range(50)]

    async with httpx.AsyncClient(proxy=proxy) as client:
        tasks = [fetch_url(client, url) for url in urls]
        results = await asyncio.gather(*tasks)
        success = sum(1 for r in results if r)
        print(f"Success: {success}/{len(urls)}")

asyncio.run(main())

Proxy üzerinden HTTP/2

httpx, HTTP/2 destekleyen az sayıdaki Python kütüphanesinden biridir:

import httpx

proxy = "http://user:pass@proxy_ip:port"
with httpx.Client(proxy=proxy, http2=True) as client:
    response = client.get("https://httpbin.org/ip")
    print(f"HTTP version: {response.http_version}")
    print(response.json())

Proxy üzerinden HTTP/2, CONNECT yöntemiyle çalışır — proxy bir TCP tüneli oluşturur ve sunucuya HTTP/2 bağlantısı bu tünel üzerinden kurulur.

Proxy rotasyonu

import httpx
import random

PROXIES = [
    "http://user:pass@proxy1:port",
    "http://user:pass@proxy2:port",
    "http://user:pass@proxy3:port",
]

def get_random_proxy():
    return random.choice(PROXIES)

# Senkron rotasyon
for i in range(10):
    proxy = get_random_proxy()
    with httpx.Client(proxy=proxy) as client:
        resp = client.get("https://httpbin.org/ip")
        print(resp.json())

Asenkron rotasyon

import httpx
import asyncio
import random

PROXIES = [
    "http://user:pass@proxy1:port",
    "http://user:pass@proxy2:port",
    "http://user:pass@proxy3:port",
]

async def fetch_with_rotation(url):
    proxy = random.choice(PROXIES)
    async with httpx.AsyncClient(proxy=proxy) as client:
        try:
            resp = await client.get(url, timeout=10)
            return resp.text
        except Exception:
            return None

async def main():
    urls = ["https://example.com"] * 20
    tasks = [fetch_with_rotation(url) for url in urls]
    results = await asyncio.gather(*tasks)
    print(f"Success: {sum(1 for r in results if r)}")

asyncio.run(main())

İstemci yapılandırması

Timeout

timeout = httpx.Timeout(
    connect=5.0,    # proxy ve sunucuya bağlantı
    read=10.0,      # yanıtın okunması
    write=5.0,      # isteğin gönderilmesi
    pool=5.0        # bağlantı havuzunda bekleme
)

client = httpx.Client(proxy=proxy, timeout=timeout)

Başlıklar ve çerezler

headers = {
    "User-Agent": "Mozilla/5.0 ...",
    "Accept-Language": "en-US,en;q=0.9",
}

client = httpx.Client(
    proxy=proxy,
    headers=headers,
    follow_redirects=True,
    max_redirects=10
)

Bağlantı havuzu

limits = httpx.Limits(
    max_connections=100,          # toplam bağlantı
    max_keepalive_connections=20  # keep-alive bağlantıları
)

client = httpx.AsyncClient(proxy=proxy, limits=limits)

Hata yönetimi

import httpx

async def safe_fetch(client, url):
    try:
        response = await client.get(url)
        response.raise_for_status()
        return response.text
    except httpx.ProxyError as e:
        print(f"Proxy error: {e}")
    except httpx.ConnectTimeout:
        print("Connection timeout")
    except httpx.ReadTimeout:
        print("Read timeout")
    except httpx.HTTPStatusError as e:
        print(f"HTTP {e.response.status_code}")
    except httpx.RequestError as e:
        print(f"Request error: {e}")
    return None

httpx vs requests vs aiohttp

Parametre httpx requests aiohttp
Senkron Evet Evet Hayır
Asenkron Evet Hayır Evet
HTTP/2 Evet Hayır Hayır
SOCKS Evet (yerleşik) requests-socks ile aiohttp-socks ile
URL'de proxy Evet Evet Evet
API requests uyumlu Standart Kendine özgü
Performans Yüksek Orta Yüksek

requests'ten geçiş

httpx, requests'in doğrudan yerine geçecek şekilde tasarlanmıştır. Geçiş çok azdır:

# requests
import requests
resp = requests.get(url, proxies={"https": proxy})

# httpx
import httpx
resp = httpx.get(url, proxy=proxy)

Temel fark: httpx'te proxies yerine proxy parametresi (tekil) kullanılır.

Sonuç

httpx, proxy işlevselliği gerektiren yeni Python projeleri için en iyi seçimdir. HTTP/2, SOCKS5 ve hem senkron hem asenkron modlara yerleşik desteği onu çok yönlü bir araç yapar. requests uyumlu API'si, mevcut projelerin geçişini kolaylaştırır.

Güncellendi: 06.03.2026
Kategoriye dön

Bunları da okuyun

Guides 2 dk

Nike SNKRS için Proxy: Sınırlı Sürümler ve Çoklu Katılım

Nike SNKRS'ta birden fazla hesapla çekilişlere katılmak, IP limitlerini aşmak ve ban yemeden sınırlı sürümleri kapmak için residential veya mobil proxy kullanın. Hangi türü seçmeli ve nasıl kurmalı.

Guides 2 dk

iPhone'da Proxy Nasıl Kurulur (Wi-Fi ve SOCKS5)

iPhone'da proxy'yi yerleşik Wi-Fi ayarlarından (HTTP/HTTPS) veya SOCKS5 ile hücresel kapsama için Shadowrocket gibi bir uygulamayla kurun. Adım adım iOS kurulumu ve bilinmesi gereken kısıtlar.

Guides 3 dk

Tinder için proxy: çoklu hesap ve ban'lerden kaçınma

Birden fazla profil işletmek ve IP shadowban'lerinden kaçınmak için Tinder'da mobil veya residential proxy kullanın. Mobilin neden kazandığı, kurulumu ve proxy'nin şehri neden değiştirmediği.

Guides 2 dk

StockX için proxy: fiyat takibi ve hesap yönetimi

StockX'te fiyatları izlemek, birden fazla hesap çalıştırmak ve drop'ları yasaklanmadan kapmak için residential, ISP veya mobil proxy kullanın. Hangi türü seçeceğinizi ve nasıl kuracağınızı anlatıyoruz.

Guides 3 dk

OpenAI API için Proxy: Erişim, Hız Limitleri ve Kurulum

OpenAI API'yi residential veya ISP proxy üzerinden yönlendirerek desteklenen bölgelere erişin, 429 hız limitlerinden kaçının ve hesapları izole edin. Hangi proxy'yi seçmeli ve Python kurulum örnekleri.

Guides 1 dk

E2E testleri için Cypress'te proxy kurulumu

Cypress'te proxy kurulumu: HTTP_PROXY değişkenleri, cy-proxy-middleware ve coğrafi konuma bağlı içeriğin test edilmesi.

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.