Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Python Requests Modülü
#1
Python, hem standart kütüphaneleri hem de harici yüzlerce modülü ile çok güçlü bir dil. Bu modüller arasında özellikle web isteklerini yönetmek için kullanılan Requests modülü, oldukça popüler ve kullanışlı bir araçtır. Bu modül sayesinde, web üzerindeki API'lerle iletişim kurabilir ve GET, POST, PUT, DELETE gibi HTTP istekleri gönderebilirsiniz.
Requests Modülünün Kurulumu
Requests modülünü kullanmaya başlamadan önce, Python'un paket yöneticisi olan pip3 ile bu modülü yüklemelisiniz. Eğer pip3 sisteminizde kurulu değilse, aşağıdaki komut ile kurulumu gerçekleştirebilirsiniz:

Kod:
sudo apt-get install python3-pip

Pip3 yüklendikten sonra, Requests modülünü şu komut ile yükleyebilirsiniz:

Kod:
pip3 install requests


Artık Requests modülünü projelerinize dahil edebilir ve kullanmaya başlayabilirsiniz:

Kod:
import requests


HTTP İstekleri Göndermek
Requests modülü ile farklı türde HTTP istekleri gönderebilirsiniz. Örneğin:


Kod:
r = requests.get('http://httpbin.org/get')
r = requests.post('http://httpbin.org/post')
r = requests.put('http://httpbin.org/put')
r = requests.delete('http://httpbin.org/delete')


Bu örneklerde, GET, POST, PUT ve DELETE istekleri nasıl yapıldığını görebilirsiniz.
Parametre Gönderme
HTTP isteklerine parametre eklemek isterseniz, params sözlüğünü kullanabilirsiniz:

Kod:
r = requests.get('http://httpbin.org/get', params={"kategori": "elektronik", "marka": "samsung"})
print(r.url)

Bu örnekte, parametreler URL'nin sonuna eklenir ve isteğin tam URL'si r.url ile görüntülenebilir.
Yönlendirmeleri Yönetmek
Bir isteğin yönlendirilip yönlendirilmediğini kontrol etmek için allow_redirects parametresini kullanabilirsiniz:


Kod:
r = requests.get("http://httpbin.org/redirect/1", allow_redirects=False)
print(r.status_code)  # 302

r = requests.get("http://httpbin.org/redirect/1", allow_redirects=True)
print(r.status_code)  # 200


POST İsteklerinde Form Verisi Göndermek


POST isteklerinde, bir form doldurup göndermiş gibi davranmak için data parametresini kullanabilirsiniz:


Kod:
r = requests.post("http://httpbin.org/post", data={"username": "selim", "password": "asd123"})
print(r.status_code)  # 200
print(r.json()["form"])  # {'username': 'selim', 'password': 'asd123'}


Timeout Belirlemek


Bir isteğin belirli bir süre içinde yanıt verip vermediğini kontrol etmek için timeout parametresini kullanabilirsiniz:

Kod:
r = requests.get("http://httpbin.org/get", timeout=1)

Eğer belirtilen süre içinde bir yanıt alınamazsa, bir hata meydana gelecektir.


JSON Verisi Göndermek


REST API'lerle çalışırken, genellikle JSON formatında veri göndermeniz gerekir. Bunun için json modülünü kullanarak veriyi JSON formatına dönüştürebilirsiniz:


Kod:
import json
import requests

endpoint = "http://httpbin.org/post"
myData = {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz",
    "address": {
        "street": "Kulas Light",
        "suite": "Apt. 556",
        "city": "Gwenborough",
        "zipcode": "92998-3874",
        "geo": {
            "lat": "-37.3159",
            "lng": "81.1496"
        }
    },
    "phone": "1-770-736-8031 x56442",
    "website": "hildegard.org",
    "company": {
        "name": "Romaguera-Crona",
        "catchPhrase": "Multi-layered client-server neural-net",
        "bs": "harness real-time e-markets"
    }
}
r = requests.post(endpoint, data=json.dumps(myData))
print(r.status_code)  # 200

Özel Header Bilgileri Göndermek
Bir isteği yaparken, headers parametresi ile özel HTTP header bilgileri gönderebilirsiniz:

Kod:
r = requests.post("http://httpbin.org/post", headers={"User-Agent": "Sinan-Chrome"})
print(r.status_code)  # 200

HTTP İsteği Sonrası Kullanılabilecek Methodlar
İstek yaptıktan sonra, requests
modülü ile çeşitli bilgilere erişebilirsiniz:
  • text: İsteğin dönen HTML içeriğini verir.
  • headers: İsteğin HTTP başlık bilgilerini döner.
  • url: İstek yapılan tam URL'yi döner.
  • status_code: HTTP durum kodunu döner.
  • history: İsteğin yönlendirilip yönlendirilmediğini gösterir.
  • encoding: Sayfanın karakter kodlamasını döner.
  • request: Yaptığınız isteğin türünü (GET, POST vb.) döner.
  • elapsed: İsteğin gerçekleştirilme süresini döner.
Bu örneklerde r değişkeni, yapılan isteğin yanıtını içerir ve bu metodlarla çeşitli bilgilere ulaşabilirsiniz. Requests modülü, web isteklerinizi yönetmek için güçlü bir araçtır ve kullanımı oldukça basittir.
  


Hızlı Menü:


Konuyu Okuyanlar:
1 Ziyaretçi