Installation und Einrichtung der Requests-Bibliothek
Die Requests-Bibliothek ist nicht im Standardumfang von Python enthalten und muss daher separat installiert werden. Führe dazu folgenden Befehl im Terminal aus:
pip install requests
Um die erfolgreiche Installation zu überprüfen, führe folgenden Code aus:
import requests
print(requests.__version__)
Was sind HTTP-Anfragen und warum braucht man die Requests-Bibliothek?
HTTP (HyperText Transfer Protocol) ist ein Protokoll zur Datenübertragung zwischen Client und Server. Requests ist eine externe Python-Bibliothek, die das Senden von HTTP-Anfragen im Vergleich zu den integrierten Modulen wie urllib erheblich vereinfacht.
Die wichtigsten Vorteile von Requests
- Einfach in der Anwendung und lesbarer Code
- Unterstützung aller HTTP-Methoden (GET, POST, PUT, DELETE, PATCH)
- Automatische Verarbeitung von JSON-Daten
- Integrierte Unterstützung für Cookies und Sessions
- Flexible Konfiguration von Headern und Parametern
- Fehler- und Ausnahmebehandlung
- Unterstützung für Proxy-Server und SSL-Zertifikate
Wichtige HTTP-Methoden mit praktischen Beispielen
GET-Anfragen: Daten abrufen
Eine GET-Anfrage wird verwendet, um Daten vom Server abzurufen, ohne diese zu verändern.
import requests
# Einfache GET-Anfrage
response = requests.get('https://api.github.com')
print(response.status_code) # 200
print(response.text) # Inhalt der Antwort
Parameter in einer GET-Anfrage übergeben
# Parameter als Dictionary übergeben
params = {
'q': 'python',
'sort': 'stars',
'order': 'desc',
'page': 1
}
response = requests.get('https://api.github.com/search/repositories', params=params)
print(response.url) # Überprüfe die finale URL mit Parametern
POST-Anfragen: Daten senden
Eine POST-Anfrage wird verwendet, um Daten an den Server zu senden und neue Ressourcen zu erstellen.
# POST-Anfrage mit Formulardaten
data = {
'username': 'test_user',
'password': 'secure_password',
'email': 'test@example.com'
}
response = requests.post('https://httpbin.org/post', data=data)
print(response.json())
POST-Anfrage mit JSON-Daten
# JSON-Daten senden
json_data = {
'title': 'Neuer Beitrag',
'body': 'Inhalt des Beitrags',
'userId': 1
}
response = requests.post(
'https://jsonplaceholder.typicode.com/posts',
json=json_data
)
print(response.json())
PUT-Anfragen: Daten aktualisieren
Eine PUT-Anfrage wird verwendet, um vorhandene Ressourcen vollständig zu aktualisieren.
update_data = {
'id': 1,
'title': 'Aktualisierter Titel',
'body': 'Neuer Inhalt',
'userId': 1
}
response = requests.put(
'https://jsonplaceholder.typicode.com/posts/1',
json=update_data
)
print(f"Status: {response.status_code}")
print(response.json())
PATCH-Anfragen: Teilweise Aktualisierung
PATCH wird verwendet, um eine Ressource teilweise zu aktualisieren.
patch_data = {'title': 'Teilweise aktualisierter Titel'}
response = requests.patch(
'https://jsonplaceholder.typicode.com/posts/1',
json=patch_data
)
print(response.json())
DELETE-Anfragen: Daten löschen
Eine DELETE-Anfrage wird verwendet, um Ressourcen auf dem Server zu löschen.
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(f"Löschstatus: {response.status_code}")
Arbeiten mit HTTP-Headern
Header enthalten Metadaten über die Anfrage und ermöglichen es, zusätzliche Informationen an den Server zu übermitteln.
headers = {
'User-Agent': 'Mozilla