Selamlar, ben asil_ruh bugün Python programlama dilinde HTTP bağlantıları için kullanabileceğimiz en popüler modüllerden olan "requests" modülünden bahsedeceğim.
Öngereklilikler
1- Temel Python3 bilgisi
2- HTTP protokolü çalışma yapısı hakkında bilgi
1- Kurulum
İlk önce requests modülü varsayılan olarak python kurulumu ile gelmiyor yani ilk önce requests modülünü işletim sistemimize indirmemiz gerekli.
İlgili modülü indirmek için python kurulumu ile gelen pip paket yöneticisini kullanabiliriz.
2- Modülü import etmek
İndirdiğimiz modülü kendi yazacağımız python projelerinde kullanmak için modülü projemizde içeri dahil etmemiz gerekli.
3- Çıktıları bir variable içerisinde tutmak
Requests modülünden ürettiğimiz çıktıyı genelde bir değişken üzerinde tutarız çünkü sonra bu requests objesinin farklı özelliklerini(değerlerini) ve metotlarını ele alabiliriz.
4- HTTP request ile ilgili temel işlemler
4.1- GET metotu ile istek göndermek:
GET metotu ile istek göndermek için requests modülü içerisindeki get fonksiyonunu kullanabiliriz.
4.2- GET metotlu isteklere GET metotlu veri ekleme(parametre)
GET metotu ile göndereceğimiz HTTP isteklerine veri eklemek için get fonksiyonundaki params fonksiyon parametresine sözlük(dict) objesinde veri gönderebiliriz.
4.2- POST metotu ile istek göndermek:
POST metotu ile bir HTTP isteği göndermek için requests modülü içerisindeki post fonksiyonunu kullanabiliriz.
4.4 POST metotlu HTTP isteklerine POST verisi eklemek(data)
POST metotu ile gönderebileceğimiz HTTP isteklerine bir POST verisi eklemek(data) için post fonksiyonundaki data parametresine sözlük objesinde veri girerek POST isteklerimizde bir POST data oluşturmuş oluruz. Genelde POST metotlu istekler gönderirken bir POST verisi göndermek isteriz.
5- HTTP response ile ilgili işlemler:
HTTP isteği göndermek için kullanabileceğimiz fonksiyonlar, parametreler vb.
Gönderdiğimiz HTTP isteğinden dönen HTTP cevabına erişebiliriz.
5.1- HTTP response içindeki tüm HTML tasarıma erişmek
İlgili istek sonucu oluşan objedeki text özelliğinde tüm HTTP response içerisindeki içeriği görebiliriz(HTML tasarım olur genelde ya da JSON, XML çıktısı vb.)
5.2- HTTP response içindeki HTTP Status Code değerine erişmek
İlgili istek sonucu oluşan objedeki status_code özelliğinde istek sonucu oluşan HTTP durum kodu(cevap kodu)(status code) görebiliriz.
5.3 - HTTP response içersindeki response header'larına erişmek. (HTTP durum/cevap başlıkları)
Bu işlem için oluşturduğumuz requests objesindeki headers özelliğini kullanabiliriz.
Not: Tüm response header'ları sözlük biçiminde tutulmaktadır.
6.1- Biraz daha özelleşmiş işlemler
6.1.1: Header ekleme veya varsayılan header'ların içerdiği değerleri değiştirmek
HTTP isteğimize request içerisindeki User-Agent değerini değiştirmek isteyebiliriz.
Bunun için requests içerisindeki fonksiyonumuza headers parametresi verebiliriz.
6.1.2: HTTP request'i için özel bir cookie ekleme
HTTP isteği içerisine kendimiz cookie eklemek istersen bunu cookies parametresine bir sözlük objesi göndererek fonksiyonumuzu kullanabiliriz.
Buradaki sözlük objesi çerezin parametresini ve değerlerini belirtmelidir.
Referans atıfı: https://docs.python-requests.org/en/latest/
Öngereklilikler
1- Temel Python3 bilgisi
2- HTTP protokolü çalışma yapısı hakkında bilgi
1- Kurulum
İlk önce requests modülü varsayılan olarak python kurulumu ile gelmiyor yani ilk önce requests modülünü işletim sistemimize indirmemiz gerekli.
İlgili modülü indirmek için python kurulumu ile gelen pip paket yöneticisini kullanabiliriz.
Bash:
pip install requests
2- Modülü import etmek
İndirdiğimiz modülü kendi yazacağımız python projelerinde kullanmak için modülü projemizde içeri dahil etmemiz gerekli.
Python:
import requests
3- Çıktıları bir variable içerisinde tutmak
Requests modülünden ürettiğimiz çıktıyı genelde bir değişken üzerinde tutarız çünkü sonra bu requests objesinin farklı özelliklerini(değerlerini) ve metotlarını ele alabiliriz.
4- HTTP request ile ilgili temel işlemler
4.1- GET metotu ile istek göndermek:
GET metotu ile istek göndermek için requests modülü içerisindeki get fonksiyonunu kullanabiliriz.
Python:
import requests
httpRequestGET = requests.get("https://spyhackerz.org")
GET metotu ile göndereceğimiz HTTP isteklerine veri eklemek için get fonksiyonundaki params fonksiyon parametresine sözlük(dict) objesinde veri gönderebiliriz.
Python:
import requests
httpRequestGETparams = {"parametre1":"değer1", "parametre2":"değer2"}
httpRequestGET = requests.get("https://spyhackerz.org/index.php", params=httpRequestGETparams)
POST metotu ile bir HTTP isteği göndermek için requests modülü içerisindeki post fonksiyonunu kullanabiliriz.
Python:
import requests
httpRequestPOST = requests.post("https://spyhackerz.org/index.php")
4.4 POST metotlu HTTP isteklerine POST verisi eklemek(data)
POST metotu ile gönderebileceğimiz HTTP isteklerine bir POST verisi eklemek(data) için post fonksiyonundaki data parametresine sözlük objesinde veri girerek POST isteklerimizde bir POST data oluşturmuş oluruz. Genelde POST metotlu istekler gönderirken bir POST verisi göndermek isteriz.
Python:
import requests
myData = {"parametre1":"deger1","parametre2":"deger2", "parametre3":"deger3"}
httpRequestPOST = requests.post("https://spyhackerz.org/index.php", data=myData)
5- HTTP response ile ilgili işlemler:
HTTP isteği göndermek için kullanabileceğimiz fonksiyonlar, parametreler vb.
Gönderdiğimiz HTTP isteğinden dönen HTTP cevabına erişebiliriz.
5.1- HTTP response içindeki tüm HTML tasarıma erişmek
İlgili istek sonucu oluşan objedeki text özelliğinde tüm HTTP response içerisindeki içeriği görebiliriz(HTML tasarım olur genelde ya da JSON, XML çıktısı vb.)
Python:
import requests
myData = {"parametre1":"deger1", "parametre2":"deger2", "parametre3":"deger3"}
httpRequestPOST = requests.post("https://spyhackerz.org/index.php", data=myData)
print(httpRequestPOST.text)
5.2- HTTP response içindeki HTTP Status Code değerine erişmek
İlgili istek sonucu oluşan objedeki status_code özelliğinde istek sonucu oluşan HTTP durum kodu(cevap kodu)(status code) görebiliriz.
Python:
import requests
myData = {"parametre1":"deger1","parametre2":"deger2", "parametre3":"deger3"}
httpRequestPOST = requests.post("https://spyhackerz.org/index.php", data=myData)
print(httpRequestPOST.status_code)
5.3 - HTTP response içersindeki response header'larına erişmek. (HTTP durum/cevap başlıkları)
Bu işlem için oluşturduğumuz requests objesindeki headers özelliğini kullanabiliriz.
Not: Tüm response header'ları sözlük biçiminde tutulmaktadır.
Python:
import requests
myData = {"User-Agent":"asil_ruh v0.0.3"}
httpRequestPOST = requests.post("https://spyhackerz.org/index.php", headers=myData)
print(httpRequestPOST.headers)
6.1- Biraz daha özelleşmiş işlemler
6.1.1: Header ekleme veya varsayılan header'ların içerdiği değerleri değiştirmek
HTTP isteğimize request içerisindeki User-Agent değerini değiştirmek isteyebiliriz.
Bunun için requests içerisindeki fonksiyonumuza headers parametresi verebiliriz.
Python:
import requests
myHeaders = {"User-Agent":"asil_ruh v0.0.3"}
httpRequestGET = requests.get("https://spyhackerz.org/index.php", headers=myHeaders)
6.1.2: HTTP request'i için özel bir cookie ekleme
HTTP isteği içerisine kendimiz cookie eklemek istersen bunu cookies parametresine bir sözlük objesi göndererek fonksiyonumuzu kullanabiliriz.
Buradaki sözlük objesi çerezin parametresini ve değerlerini belirtmelidir.
Python:
import requests
myCookies = {"PHPSESSID":"xyzbilmemne"}
httpRequestPOST = requests.post("https://spyhackerz.org/index.php", cookies=myCookies)
Referans atıfı: https://docs.python-requests.org/en/latest/
Son düzenleme:
💬 SpyHackerz Telegram — Anlık tartışmalar ve duyurular için katıl