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 requestsGET, sunucudan veri istemek için kullanılır. Örneğin bir web sayfasını açıp içeriğini almak:
1import requests23response = requests.get('https://jsonplaceholder.typicode.com/posts/1')4print(response.status_code) # 200 = başarılı5print(response.text) # Ham metin6print(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 requests23veri = {'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 requests23basliklar = {4'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'5}67response = requests.get('https://api.github.com', headers=basliklar)8print(response.status_code)Bağlantı hataları veya zaman aşımı olabilir. Bunları kontrol edin:
1import requests23try:4response = requests.get('https://jsonplaceholder.typicode.com/posts/1', timeout=5)5response.raise_for_status() # Hata durumunda istisna fırlat6print(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.
0 yorum