Python-Anfragen: Alles was Sie wissen müssen



Dieser Blog führt Sie ausführlich durch das Python-Anforderungsmodul. Sie werden mit GET- und POST-Anforderungen, Sitzungsobjekten, Cookies und Headern vertraut gemacht.

Python fordert täglich fast 400.000 Downloads an. Diese Zahl ist offensichtlich genug, um die Popularität dieser zu verstehen . In den letzten Jahren ist die Programmiersprache Python für viele Entwickler zur begehrtesten Programmiersprache geworden. Die Konzepte und Bibliotheken wie Anfragen sind einer der vielen Gründe für Entwickler, von anderen Programmiersprachen auf Python umzusteigen. In diesem Blog werden wir die folgenden Themen behandeln:

Was sind Python-Anfragen?

Python-Anfragen wurden von Kenneth Reitz geschrieben und unter Apache 2.0 lizenziert. Es ist eine menschenfreundliche HTTP-Bibliothek, wie auf der offiziellen Dokumentationsseite erwähnt. Es ist einfach zu bedienen und wird im Wesentlichen zum Erstellen aller Arten von HTTP-Anforderungen verwendet. Im Folgenden sind einige erweiterte Funktionen aufgeführt, mit denen Anforderungen verbunden sind:
  1. Am Leben bleiben und Verbindungen bündeln
  2. Internationale Domains und URLs
  3. Sitzungen mit Cookie-Persistenz
  4. SSL-Überprüfung im Browser-Stil
  5. Automatische Dekodierung von Inhalten
  6. Basic / Digest-Authentifizierung
  7. Elegante Schlüssel- / Wert-Cookies
  8. Automatische Dekomprimierung
  9. Unicode-Antwortkörper
  10. HTTP-Proxy-Unterstützung
  11. Hochladen von mehrteiligen Dateien
  12. Streaming-Downloads
  13. Verbindungszeitüberschreitungen
  14. Chunked Anfragen
Dies sind alle erweiterten Funktionen der Python-Anforderungsbibliothek. Lassen Sie uns versuchen zu verstehen, warum wir Python-Anforderungen überhaupt verwenden.

Warum Python-Anfragen verwenden?

Wenn es darum geht, warum wir Python-Anfragen verwenden? Der Grund ist ziemlich einfach. Während Sie Python-Anforderungen verwenden, müssen Sie die Abfragen nicht manuell zu Ihren URLs hinzufügen und Post-Daten formularcodieren. Es erleichtert uns die Arbeit, wenn wir http-Anfragen jeglicher Art stellen.Nachdem wir mit Python-Anforderungen vertraut sind und wissen, warum wir sie in Python verwenden, versuchen wir zu verstehen, wie Anforderungen in unserem Projekt oder System installiert werden.

Wie installiere ich Python-Anfragen?

Der Installationsteil ist ebenfalls sehr einfach. Wenn Sie das pipenv-Setup auf Ihrem System installiert haben, können Sie einfach den folgenden Befehl im Terminal ausführen.

$ pip Installationsanforderungen

c ++ Sortierfunktion
Dadurch wird die Anforderungsbibliothek auf Ihrem System installiert. Es gibt noch einen Ansatz zum Installieren von Anforderungen. Wenn Sie pycharm verwenden, können Sie in den Einstellungen Anforderungen an den Projektinterpreter hinzufügen. Es dient dem gleichen Zweck wie das Terminal, wenn die Bibliothek in unserem Projekt installiert wird.Nachdem wir mit der Installation fertig sind, versuchen wir zu verstehen, wie wir Anfragen in Python abrufen und veröffentlichen.

Wie mache ich Get & Post-Anfragen?

Get request wird grundsätzlich verwendet, um die Daten vom Server anzufordern. Im Folgenden finden Sie die Syntax zum Abrufen einer Get-Anforderung.
Importanfragen res = request.get ('url') #res ist hier das Antwortobjekt.
Die Post-Anfrage wird verwendet, um die zu verarbeitenden Daten an den Server zu senden. Im Folgenden finden Sie die Syntax zum Erstellen einer Post-Anfrage.
Importanfragen payload = {'key1': 'value1'} res = request.post ('url', data = payload)
Nachdem wir nun wissen, wie wir Get- und Post-Anfragen stellen können, schauen wir uns an, wie wir mithilfe der Get-Anfrage Parameter an die URL übergeben können.

Übergeben von Parametern in einer URL

Das Übergeben von Parametern in einer URL ist so einfach wie das Abrufen einer Get-Anfrage. Im Folgenden finden Sie ein Beispiel für die Übergabe von Parametern an die URL.
Importanfragen payload = {'key1': 'value1', 'key2': 'value2'} res = request.get ('url', params = payload) print (res.url) #dies wird die URL mit den Parametern gedruckt die get-Anfrage durchlaufen.

Statuscode

Wir können auch den Statuscode überprüfen. Im Folgenden finden Sie den Code zum Überprüfen des Statuscodes:





Importanfragen res = request.get ('url') print (res.status_code ())
Wenn der Code 200 zurückgibt, bedeutet dies, dass kein Fehler vorliegt und die Anforderung in Ordnung ist. Wenn wir eine schlechte Anfrage stellen, gibt der Code einen Code wie 404 oder 505 zurück, der einen http-Fehler auslöst.

Antwortinhalt

Wir können auch den Inhalt der Serverantwort lesen. Die Bibliothek dekodiert den Inhalt automatisch vom Server.
Importanfragen res = request.get ('url') print (res.content)

Requests hat auch einen eingebauten JSON-Decoder.

Importanfragen res = request.get ('url') print (res.json ()) #dies wird die Antwort in einem JSON-Format erhalten

Hochladen von mehrteiligen Dateien

Es ist sehr einfach, mehrteilige Dateien mithilfe von Anforderungen hochzuladen.
Anforderungsdateien importieren = {'Datei': open ('Dateiname', 'rb')} res = Anfragen.post ('URL', Dateien = Dateien) print (res.text)
Zum Senden mehrerer Dateien geben wir im Parameter files mehrere Dateien an.

Cookies und Header

Wir können die Antwortheader und Cookies des Servers mithilfe des Antwortobjekts anzeigen. Im Folgenden finden Sie den Code zum Anzeigen der Header des Servers.
Importanfragen res = request.get ('url') print (res.headers)
Wir können auch benutzerdefinierte Header an die URL übergeben. Schauen wir uns den Code an.
Anforderungsheader importieren = {'key1': 'value1'} res = request.get ('url', headers = headers) print (res.headers)
Requests ändert sein Verhalten nicht basierend auf benutzerdefinierten Headern. Sie werden einfach an die endgültige Anfrage weitergeleitet. Kekse kann auch mit dem Antwortobjekt angezeigt werden.
Importanfragen #Um unsere eigenen Cookies weiterzugeben, können wir den Cookie-Parameter cookies = dict (Cookies = 'Working') verwenden.

Cookies werden in einem RequestCookieJar zurückgegeben, das sich wie ein Wörterbuch verhält, aber auch eine vollständigere Benutzeroberfläche bietet, die für die Verwendung über mehrere Domänen oder Pfade geeignet ist.



Sitzungsobjekt

Mit dem Sitzungsobjekt können Sie bestimmte Parameter über die Anforderungen hinweg beibehalten.
  • Behält Cookies für alle Anforderungen der Sitzungsinstanz bei
  • Verwenden Sie das urllib3-Verbindungspooling
  • Erhebliche Leistungssteigerung
  • Ein Sitzungsobjekt verfügt über alle Methoden der Hauptanforderungs-API
Im Folgenden finden Sie den Code, mit dem einige Cookies über Anfragen hinweg beibehalten werden können.
s = request.session () s.get ('url') res = s.get ('url') print (res.text)

Fehler und Ausnahmen

Im Folgenden sind die Fehler und Ausnahmen aufgeführt, die in einer Python-Anforderung ausgelöst werden.
  • Im Falle eines Netzwerkproblems lösen Anforderungen eine ConnectionError-Ausnahme aus.
  • Response.raise_for_status () löst einen HTTP-Fehler aus, wenn ein Statuscode nicht erfolgreich ist.
  • Wenn es eine Zeitüberschreitung gibt, wird eine Zeitüberschreitungsausnahme ausgelöst
  • Die TooManyRedirects-Ausnahme wird ausgelöst, wenn die Anforderung die konfigurierte Anzahl der maximalen Anzahl von Weiterleitungen überschreitet.
In diesem Blog haben wir das Python-Anforderungsmodul besprochen, in dem wir verschiedene erweiterte Funktionen haben. Wir haben die Installation und das Erstellen und Abrufen einer Anfrage mit dem Antwortinhalt und anderen Konzepten in der Anforderungsbibliothek in Python besprochen. Das Python-Anforderungsmodul ist eine der vielen außergewöhnlichen Funktionen von Python-Programmiersprache . Sie können Ihr Lernen ankurbeln, indem Sie sich anmelden und entdecken Sie die Möglichkeiten der Programmiersprache Python. Haben Sie Fragen? Erwähnen Sie sie in den Kommentaren, wir werden uns bei Ihnen melden.