Einführung in die Requests-Bibliothek
Requests ist eine einfache und leistungsstarke Bibliothek für HTTP-Anfragen in Python. Sie bietet eine benutzerfreundliche Oberfläche für REST-API-Operationen, das Herunterladen von Webdaten sowie das Senden von Dateien und die Authentifizierung. Dank ihres klaren Syntax und ihres umfangreichen Funktionsumfangs hat sich Requests als De-facto-Standard unter den HTTP-Clients in Python etabliert.
Die Requests-Bibliothek wurde 2011 von Kenneth Reitz entwickelt, um HTTP-Anfragen in Python so einfach und bequem wie möglich zu gestalten. Sie baut auf urllib3 auf und bietet eine High-Level-API für die Arbeit mit dem HTTP-Protokoll.
Vorteile von Requests gegenüber urllib
- Lesbarerer Syntax — intuitive Methoden und Parameter
- Automatische Cookie- und Redirect-Verwaltung — keine zusätzliche Konfiguration nötig
- Komfortable Arbeit mit JSON, Headern und Formularen — integrierte Unterstützung gängiger Formate
- Unterstützung für Sessions, Proxys und Authentifizierung — vollständiges Toolkit für Webdienste
- Unterstützung aller HTTP-Methoden — GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
- Automatische Dekodierung von Inhalten — intelligente Verarbeitung von Kodierungen
- Integrierte SSL-Unterstützung — sichere Verbindungen standardmäßig
Installation und Einbindung der Bibliothek
Installation mit pip:
pip install requests
Für ein Update auf die neueste Version:
pip install --upgrade requests
Import der Bibliothek:
import requests
Grundlegende HTTP-Anfragemethoden
GET-Anfragen senden
GET-Anfragen werden verwendet, um Daten vom Server abzurufen:
response = requests.get('https://api.example.com/data')
print(response.status_code) # Statuscode
print(response.text) # Antworttext
JSON-Daten abrufen:
response = requests.get('https://api.example.com/users')
data = response.json() # Automatische Umwandlung in Python-Dictionary
print(data)
POST-Anfragen senden
POST-Anfragen werden verwendet, um Daten an den Server zu senden:
payload = {'username': 'admin', 'password': '123'}
response = requests.post('https://api.example.com/login', data=payload)
JSON-Daten senden:
user_data = {'name': 'John', 'email': 'john@example.com'}
response = requests.post('https://api.example.com/users', json=user_data)
PUT, PATCH und DELETE verwenden
# PUT - vollständige Aktualisierung einer Ressource
requests.put('https://api.example.com/user/1', json={'name': 'New Name', 'email': 'new@example.com'})
# PATCH - teilweise Aktualisierung einer Ressource
requests.patch('https://api.example.com/user/1', json={'active': True})
# DELETE - Löschen einer Ressource
requests.delete('https://api.example.com/user/1')
# HEAD - nur Header abrufen
response = requests.head('https://api.example.com/user/1')
print(response.headers)
Arbeiten mit Anfrageparametern
URL-Parameter können als Dictionary übergeben werden:
params = {'search': 'python', 'limit': 10, 'page': 1}
response = requests.get('https://api.example.com/search', params=params)
print(response.url) # Zeigt die vollständige URL mit Parametern
Parameter können auch als Liste von Tupeln übergeben werden:
params = [('tag', 'python'), ('tag', 'web'), ('limit', 20)]
response = requests.get('https://api.example.com/posts', params=params) Auch in der Bibliothek
QR-Code-Generator in Go (Golang): Bibliothek go-qrcode
Caching in C++: Redis, memcached, LevelDB und andere Tools
Prisma für JavaScript (Node.js): Komplettguide mit Beispielen
Dependency Injection Container in C++: Die Bibliothek Fruit für die Abhängigkeitsinjektion