Discussion

Python Requests Session Optimizasyonu

Started by Celal · 21 Jul 2026 20:45 · 5 Views · 0 Replies
Thread Starter #0
Python'da web ile etkileşim kurmak için sıklıkla kullanılan requests kütüphanesi, HTTP istekleri yapmanın kolay bir yolunu sunar. Ancak, çok sayıda istek yaparken performansı artırmak için uygun bir şekilde yapılandırılması gerekir. Bu yazıda, requests.Session kullanarak nasıl optimizasyon yapabileceğinizi ele alacağız.

Öncelikle, requests.Session kullanmanın avantajlarından bahsedelim. Her bir istek için bağlantı oluşturmak yerine, bir oturum üzerinden birden fazla istek yaparak bağlantı havuzunu kullanabilirsiniz. Bu, genel olarak daha hızlı yanıt süreleri ve daha az gecikme sağlar. İşte basit bir kullanım örneği:

CODE
12345678910111213
import requests

[b]Session oluştur[/b]
session = requests.Session()

[b]Başlıkları ayarla[/b]
session.headers.update({'User-Agent': 'MyApp/1.0'})

[b]Bir URL'ye istek yap[/b]
response = session.get('https://example.com/api/data')

print(response.json())


Yukarıdaki örnekte, bir Session nesnesi oluşturduk ve bu nesne üzerinden bir API çağrısı yaptık. session.headers.update() ile varsayılan başlıkları ayarlamak, aynı başlıkların her istekte yeniden belirtilmesini engeller.

İkinci olarak, otomatik yeniden deneme mekanizması eklemek isteyebilirsiniz. HTTP istekleri bazen başarısız olabilir. Bu tür durumları yönetmek için requests kütüphanesi ile birlikte urllib3 kullanarak basit bir yeniden deneme işlevi oluşturabilirsiniz:

CODE
1234567891011121314
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util import Retry

[b]Yeniden deneme ayarları[/b]
retry_strategy = Retry(
    total=3,
    status_forcelist=[500, 502, 503, 504],
    method_whitelist=["HEAD", "GET", "OPTIONS"]
)

adapter = HTTPAdapter(max_retries=retry_strategy)
session.mount("https://", adapter)
session.mount("http://", adapter)


Bu ayarlar, belirli durum kodları için isteklerin yeniden denenmesini sağlar. Bu şekilde, ağ sorunları veya sunucu yanıtları nedeniyle oluşan geçici hataları azaltabilirsiniz.

Son olarak, requests.Session nesnesini kullanarak cookie'leri yönetmek de mümkündür. Diğer isteklerde cookie'leri otomatik olarak kullanmak için:

CODE
123
[b]Cookie'leri ayarla[/b]
session.cookies.set("key", "value")


Bu, oturumunuz boyunca cookie'lerinizi yönetmenin ve her istekte otomatik olarak göndermenin etkili bir yoludur.

Sonuç olarak, requests.Session kullanarak performans optimizasyonu sağlamak mümkündür. Yukarıda belirtilen yöntemleri uygulayarak, hem hızınızı artırabilir hem de daha güvenilir bir uygulama geliştirebilirsiniz. Sizlerin bu konudaki deneyimleri neler? Başka optimizasyon önerileriniz var mı?

You must be logged in to reply.

0 quotes selected