Alle Inhalte im Netzwerk sind über Anforderung zugänglich. Wenn Ihre Python -Anwendung Webinformationen benötigt, müssen Sie eine Webanforderung stellen. Dieser Artikel wird in Python -Anfragen eintauchen. Wir werden die Struktur von Webanfragen kennenlernen und wie man Python -Anfragen erstellt. Letztendlich können Sie die Python Request Library verwenden, die den gesamten Prozess erheblich erleichtert.
Schlüsselpunkte
Einführung in die HTTP -Anforderung
Um Daten im Web auszutauschen, benötigen wir zunächst ein Kommunikationsprotokoll. Das Protokoll, das wir beim Surfen des Webs verwenden, ist Hypertext -Transferprotokoll oder HTTP. HTTP verwendet TCP als Transportprotokoll, da es zuverlässiger Transport benötigt und nur TCP dies garantieren kann.
Angenommen, wir benötigen eine Ressource - wie eine HTML -Seite auf einem Webserver, das sich irgendwo auf der Welt befindet. Wir möchten auf diese Ressource zugreifen, oder mit anderen Worten, wir möchten die Seite in unserem Webbrowser anzeigen. Das erste, was wir tun müssen, ist HTTP -Anfragen. HTTP ist ein Client-Server-Protokoll, was bedeutet, dass Anfragen vom Client initiiert werden.
Nach Empfang der Anforderung verarbeitet der Server sie und gibt die entsprechende Antwort zurück.
Die Antwortmethode des Servers kann variieren. Es kann die von uns angeforderte Ressource senden oder auf den Statuscode antworten, wenn eine unerwartete Situation auftritt.
In jedem Kommunikationsprotokoll müssen sich die Informationen in einem bestimmten Bereich befinden. Dies liegt daran, dass sowohl der Client als auch der Server wissen sollten, wie die Anfrage oder Antwort interpretiert werden sollte. Im nächsten Abschnitt erfahren wir, wie HTTP -Anfragen und HTTP -Antworten erstellt werden. Wir werden auch die Rolle der wichtigsten Bereiche diskutieren.
Eines der wichtigsten Designmerkmale von HTTP ist, dass es menschlich lesbar ist. Dies bedeutet, dass wir, wenn wir uns HTTP -Anfragen ansehen, alles auch mit viel Komplexität unten leicht lesen können. Ein weiteres Merkmal von HTTP ist, dass es staatenlos ist. Dies bedeutet, dass es keinen Zusammenhang zwischen zwei aufeinanderfolgenden Anfragen gibt. Das HTTP -Protokoll erinnert sich an keine früheren Anforderungen. Dies bedeutet, dass jede Anfrage alles enthalten muss, was der Server für die Anforderung benötigt.
Eine gültige HTTP -Anforderung muss die folgenden Elemente enthalten:
Wir können dann einige optionale Header hinzufügen, die zusätzliche Informationen zum Absender oder zur Nachricht angeben. Beispiele für gemeinsame HTTP-Anforderungsheader sind Benutzer-Agent oder die bevorzugte natürliche Sprache des Kunden. Beide optionalen Header geben Informationen über den Kunden an, der die Anfrage erstellt.
Dies ist ein HTTP -Nachrichtenbeispiel, in dem wir alle angegebenen Felder klar verstehen können:
<code>~~~http GET / HTTP/1.1 Host: www.google.com Accept-Language: en-GB,en;q=0.5 ~~~</code>
Die erste Zeile gibt den Anforderungsart und die Version des HTTP -Protokolls an. Wir geben dann den Host und die Sprache an, die der Kunde die Anfrage annimmt. Normalerweise sind Nachrichten viel länger, aber dies kann zu ihrem Erscheinungsbild führen.
Jetzt, da wir verstehen, wie die HTTP -Anfrage aussieht, können wir weiterhin die HTTP -Antwort anzeigen.
HTTP -Antworten enthalten normalerweise die folgenden Elemente:
Jetzt, da wir die Grundelemente vorgestellt haben, die Sie benötigen, lohnt es sich, vor dem nächsten Schritt zusammengefasst zu werden. Es sollte nun klar sein, dass ein Client, wenn er mit einem HTTP -Server kommunizieren möchte, eine HTTP -Anforderung erstellen und senden muss. Wenn der Server ihn empfängt, wird eine HTTP -Antwort erstellt und sendet.
Wir sind endlich bereit, die Python Request Library vorzustellen.
Python fordert die Bibliothek
anMit der Python Request -Bibliothek können Sie Python HTTP -Anforderungen senden - von grundlegenden Anfragen bis hin zu komplexen Anfragen. Die Python fordert Bibliothek an, die Komplexität der Erstellung komplexer Python-Anfragen abstrahiert und eine benutzerfreundliche Schnittstelle bietet. Im nächsten Abschnitt lernen wir, wie Sie eine einfache Python -Anfrage erstellen und die Antwort interpretieren. Wir werden auch einige der Funktionen der Python Request Library kennenlernen.
Zunächst müssen wir die Python Request Library installieren. Installieren wir es mit PIP:
<code>$ pip install requests</code>
Nachdem die Python -Anforderungsbibliothek ordnungsgemäß installiert wurde, können wir sie verwenden.
Erstens müssen wir eine Python -Datei erstellen. In diesem Beispiel nennen wir es Web.py. Fügen Sie in dieser Quelldatei den folgenden Code ein:
<code>import requests URL = "https://www.google.com" resp = requests.get(URL) print(resp)</code>
Dieses Programm gibt eine Get -Anfrage an Google aus. Wenn wir dieses Programm ausführen, erhalten wir möglicherweise die folgende Ausgabe:
<code>$ python web.py <response></response></code>
Was bedeutet das?
Wir haben schon einmal Statuscodes besprochen. Diese Ausgabe zeigt uns, dass unsere Anfrage erfolgreich empfangen, verstanden und verarbeitet wurde. Es gibt andere Codes, wir können einige der häufigsten Codes auflisten:
Was ist, wenn wir den Status bedingt überprüfen und unterschiedliche Vorgänge gemäß dem Statuscode angeben möchten? Wir können das leicht tun:
<code>~~~http GET / HTTP/1.1 Host: www.google.com Accept-Language: en-GB,en;q=0.5 ~~~</code>
Wenn wir das Skript jetzt ausführen, erhalten wir unterschiedliche Ergebnisse. Probieren Sie es aus und sehen Sie, was wir bekommen. ?
Wenn wir auch die beschreibende Kurznachricht benötigen, die mit jedem Statuscode geliefert wird, können wir resp.reason
verwenden. Für den 200 -Status -Code werden wir einfach in Ordnung.
Zu diesem Zeitpunkt wissen wir, wie man grundlegende Python -Anfragen erstellt. Nach der Anfrage müssen wir antworten, oder?
Im vorherigen Abschnitt haben wir gesehen, wie man den Statuscode für die Antwort erhält. Jetzt möchten wir den Körper der Antwort lesen, d. H. Die tatsächliche Ressource, die wir angefordert haben. Dazu müssen wir resp.content
verwenden. Angenommen, wir suchen nach der Google -Homepage.
Wenn wir das Skript ausführen, erhalten wir Folgendes:
<code>$ pip install requests</code>
Ich habe [...]
hinzugefügt, weil die von uns erhaltene Ressource (ein Text/HTML -Dokument) zu lang war, um gedruckt zu werden. Wie lange ist es? Wir können len(resp.content)
verwenden, um diese Informationen zu erhalten. Im obigen Beispiel sind es 13931 Bytes - hier muss zu viele gedruckt!
(Der folgende Inhalt ist durch den Raum begrenzt, nur die Zusammenfassung wird beibehalten. Weitere Informationen finden Sie im Originaltext)
Einer der Gründe, warum die Python -Anfragebibliothek so beliebt ist, ist, dass die Interaktion mit der API sehr einfach macht. In diesem Fall werden wir eine einfache API verwenden, um das Alter einer Person angesichts ihres Namens vorherzusagen. Diese API heißt Agify.
Der HTTP -Header bietet beiden Parteien zusätzliche Informationen zur HTTP -Kommunikation. Im folgenden Beispiel werden wir sehen, wie der Header einer HTTP -GET -Anfrage geändert wird. Insbesondere werden wir die Benutzer-Agent ändern und die Sprachüberschriften akzeptieren. User-Agent teilt dem Server einige Informationen über die Anwendung, das Betriebssystem und den Anbieter mit, die den Agenten anfordern. Der Akzept-Sprache-Header vermittelt eine Sprache, die der Kunde verstehen kann.
Schlussfolgerung
In diesem Artikel diskutieren wir das HTTP -Protokoll und geben eine kurze theoretische Einführung. Wir schauten uns dann die Python -Anfragebibliothek an. Wir haben gelernt, wie man grundlegende Python -HTTP -Anfragen schreibt und wie man sie entsprechend unseren Bedürfnissen anpasst.
FAQs über HTTP -Anforderungen in Python
(Der folgende Inhalt ist nur aufgrund von Platzbeschränkungen reserviert. Weitere Informationen finden Sie im Originaltext)
Das obige ist der detaillierte Inhalt vonEin Anfänger -Leitfaden für HTTP -Python -Anfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!