Python ile Requests Kütüphanesi: İlk Adımlar ve Uygulama Örnekleri

Giriş

Python programlama dilinin en güçlü yönlerinden biri, açık kaynaklı kütüphanelerin zenginliği ve esnekliğidir. Bunların arasında Requests kütüphanesi, HTTP isteği yapmak için en çok tercih edilen araçlardan biridir. Web uygulamaları ve API’lerle çalışırken karşılaşabileceğiniz senaryoları kolayca yönetmenizi sağlar. Bu yazıda, Requests kütüphanesini kullanarak web’den veri çekme, form gönderme ve hata yönetimi gibi temel konuları ele alacağız.

Requests Kütüphanesinin Kurulumu

Requests kütüphanesini Python ile kullanmaya başlamak için öncelikle kütüphaneyi sisteminize yüklemeniz gerekiyor. Bu işlemi, pip komutunu kullanarak kolaylıkla yapabilirsiniz. Terminal veya komut istemcisinde aşağıdaki komutu yazarak Requests kütüphanesini yükleyebilirsiniz:

pip install requests

Kütüphanenin yüklenip yüklenmediğini doğrulamak için Python kabuğunu açabilir ve aşağıdaki komutu çalıştırabilirsiniz:

import requests

Eğer herhangi bir hata ile karşılaşmazsanız, kütüphane başarıyla kurulmuş demektir. Bu noktada, Requests kütüphanesinin temel işlevlerine girmek için hazırız!

HTTP GET İsteği Göndermek

Requests kütüphanesinin temel işlemlerinden biri HTTP GET isteği göndermektir. Web’deki bir kaynağa erişmek için en yaygın kullanımlardan biridir. Bir örnek üzerinden bu işlem nasıl gerçekleştirilir, gelin birlikte inceleyelim.

Öncelikle requests.get() fonksiyonunu kullanarak bir URL’ye istek göndereceğiz. Aşağıdaki örnekte, bir örnek API üzerinde GET isteği gerçekleştireceğiz:

import requests
response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.json())

Bu kod parçası, belirtilen URL’ye bir GET isteği gönderir. response.json() metodu ise aldığımız yanıtı bir Python sözlüğüne dönüştürerek çıktıyı okunabilir hale getirir. JSON verilerini işlemek için bu yöntem özellikle yararlıdır.

HTTP POST İsteği Göndermek

HTTP POST isteği, genellikle sunucuya veri göndermek için kullanılır. Bu, form verilerini göndermek veya yeni bir kaynak oluşturmak için idealdir. Aşağıdaki örnekte, bir JSON verisini POST isteği ile göndereceğiz:

import requests

url = 'https://jsonplaceholder.typicode.com/posts'
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.post(url, json=data)
print(response.json())

Bu örnekte requests.post() fonksiyonu ile belirli bir URL’ye veri gönderdik. json=data kısmı, verinin JSON formatında gönderileceğini belirtir. Sunucu, bu veriyi işlediğinde uygun bir yanıt dönecektir, ki bu yanıtı response.json() ile alabiliriz.

Hata Yönetimi

Requests kütüphanesi, web istekleriyle çalışırken hata yönetimini de kolaylaştırır. HTTP istekleri sırasında oluşabilecek hatalarla başa çıkmak için response.status_code ve response.raise_for_status() yöntemlerini kullanabilirsiniz.

Aşağıda, bir istek yapmadan önce yanıtın durum kodunu kontrol eden bir örnek bulabilirsiniz:

import requests

response = requests.get('https://jsonplaceholder.typicode.com/posts/1000')
if response.status_code == 200:
    print(response.json())
else:
    print(f'Hata: {response.status_code}')

Burada, eğer yanıt kodu 200 ise, verilere erişim sağlarız; aksi halde hata kodunu yazdırırız. Böylece kullanıcılar için daha iyi bir deneyim sağlamış oluruz.

Form Verilerini Göndermek

Web formlarıyla çalışmak için de Requests kütüphanesini kullanabilirsiniz. requests.post() fonksiyonu ile form verileri göndermek oldukça basit. Aşağıda bir formu simulasyonunu gerçekleştireceğiz:

import requests

url = 'https://httpbin.org/post'
data = {'username': 'ege', 'password': 'gizli'}
response = requests.post(url, data=data)
print(response.text)

Bu örnekte, bir kullanıcı adı ve şifre gibi form verilerini gönderiyoruz. httpbin.org servisi, aldığınız veriyi geri döner. Bu tür geri dönüşler, form gönderimlerinizi test etmek için kullanışlıdır.

API ile Çalışma ve Oturum Yönetimi

Modern uygulamalar sıklıkla API servisi ile iletişim halindedir. Bu nedenle, Requests kütüphanesi ile oturum açma ve kullanıcı kimlik doğrulaması gibi işlemleri gerçekleştirmek sıklıkla karşılaşılan bir durumdur. Aşağıda bir örnek ile bunu nasıl yapabileceğimizi inceleyelim:

import requests

session = requests.Session()

login_data = {'username': 'ege', 'password': 'gizli'}
response = session.post('https://httpbin.org/post', data=login_data)
print(response.text)

# Yetkilendirilmiş bir istek
response = session.get('https://httpbin.org/get')
print(response.text)

Burada, requests.Session() ile bir oturum oluşturduk ve bu oturum üzerinden hem giriş yaptık hem de ardından başka bir istek gönderdik. Bu yöntem, oturum bazlı yetkilendirme gerektiren uygulamalar için kullanışlıdır.

Proxy ve Zaman Aşımı Ayarları

Bazı durumlarda isteklerinizi bir proxy sunucusu üzerinden yönlendirmek isteyebilirsiniz. Requests kütüphanesi, bu tür bir senaryoyu destekler. Aşağıda bir örnek üzerinden nasıl yapılandıracağını göreceksiniz:

import requests

proxies = { 'http': 'http://10.10.1.10:3128', 'https': 'http://10.10.1.10:1080' }
response = requests.get('http://example.org', proxies=proxies)
print(response.text)

Yukarıdaki örnekte, proxies sözlüğünde belirtilen proxy sunucularını kullanarak bir istek gerçekleştirdik. Ayrıca bir isteğin zaman aşımını ayarlamak da mümkündür:

response = requests.get('https://jsonplaceholder.typicode.com/posts', timeout=5)

Bu, isteğin 5 saniye içinde tamamlanmaması durumunda bir hata vermesini sağlayacaktır. Zaman aşımı ayarları, bağlantı sorunlarıyla başa çıkmak için oldukça faydalıdır.

Sonuç

Requests kütüphanesi, Python ile HTTP istekleri göndermek için güçlü ve kullanışlı bir araçtır. GET ve POST isteklerinden, hata yönetiminden, oturum açma işlemlerine ve proxy ayarlarına kadar birçok farklı senaryoyu destekler. Bu yazıda ele aldığımız örneklerle, ihtiyaç duyduğunuzda Requests kütüphanesini projelerinize entegre etmek için sağlam bir zemin hazırladık.

Python topluluğundaki herkesin bu güçlü kütüphaneden faydalanarak web dünyasına daha fazla katkıda bulunmasını ümit ediyorum. Şimdi, kendi projelerinizde denemeler yaparak bu bilgileri uygulama aşamasına geçirebilirsiniz. Unutmayın, uygulama yaparak öğrenmek, en iyi öğrenme yöntemlerinden biridir!

Yazıyı sonlandırmadan önce, incelediğiniz alanlarda daha fazla bilgi edinmek isterseniz, Requests dokümantasyonuna göz atmayı unutmayın. Herhangi bir sorunuz olduğunda yorum bırakmaktan çekinmeyin!

Scroll to Top