Python requests ile HTTP İstekleri ve Web Verisi Çekme

requests, Python'da web sayfalarına bağlanıp veri almak için kullanılan temel bir kütüphanedir. HTML sayfalar, JSON verileri, görseller hepsi bu şekilde indirebilirsiniz.

İlk olarak requests'i yükleyin:

1pip install requests

GET, sunucudan veri istemek için kullanılır. Örneğin bir web sayfasını açıp içeriğini almak:

1import requests
2
3response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
4print(response.status_code) # 200 = başarılı
5print(response.text) # Ham metin
6print(response.json()) # JSON olarak ayrıştırılmış

Çıktı:
```
200
{"userId": 1, "id": 1, "title": "...", "body": "..."}
{'userId': 1, 'id': 1, 'title': '...', 'body': '...'}
```

POST, sunucuya veri göndermek için kullanılır:

1import requests
2
3veri = {'isim': 'Ali', 'sehir': 'Istanbul'}
4response = requests.post('https://jsonplaceholder.typicode.com/posts', json=veri)
5print(response.status_code)
6print(response.json())

Çıktı:
```
201
{'isim': 'Ali', 'sehir': 'Istanbul', 'id': 101}
```

Bazı siteler belirli başlıklar ister. Örneğin tarayıcı bilgisi:

1import requests
2
3basliklar = {
4'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
5}
6
7response = requests.get('https://api.github.com', headers=basliklar)
8print(response.status_code)

Bağlantı hataları veya zaman aşımı olabilir. Bunları kontrol edin:

1import requests
2
3try:
4response = requests.get('https://jsonplaceholder.typicode.com/posts/1', timeout=5)
5response.raise_for_status() # Hata durumunda istisna fırlat
6print(response.json())
7except requests.exceptions.Timeout:
8print('Zaman aşımı oldu')
9except requests.exceptions.ConnectionError:
10print('Bağlantı hatası')
11except requests.exceptions.HTTPError as e:
12print(f'HTTP hatası: {e}')

response.status_code ile durum kodunu kontrol edin: 200 başarılı, 404 bulunamadı, 500 sunucu hatası anlamına gelir.

requests kütüphanesi basit ama güçlüdür. Parametreler, kimlik doğrulama, dosya yükleme gibi ileri özellikler de vardır. Ama temel GET/POST ve hata yönetimi ile çoğu görev halledilebilir.

konu hakkında tepkinizi verebilirsiniz