logo

Tutorial zu Python-Anfragen

Der Fordert Bibliothek in Python an ist einer der integralen Bestandteile von Python zum Senden von HTTP-Anfragen an eine bestimmte URL. Unabhängig davon, ob es sich um REST-APIs oder Web Scraping handelt, müssen Anforderungen erlernt werden, um mit diesen Technologien weiter fortfahren zu können. Wenn man eine Anfrage an einen URI stellt, gibt dieser eine Antwort zurück. Python-Anfragen bieten integrierte Funktionen zum Verwalten von Anfragen und Antworten.

Unterschied zwischen einem Tiger und einem Löwen

In diesem Tutorial werden wir untersuchen, was ist Python-Anforderungsbibliothek , Wie man ... macht GET-Anfragen durch Python-Anfragen, Antwortobjekte und -methoden, Authentifizierung mit Python-Anfragen usw.



Python-Requests-Modul

Inhaltsverzeichnis

Was ist das Python Requests-Modul?

  • Requests ist eine von Apache2 lizenzierte HTTP-Bibliothek, die das Senden von HTTP/1.1-Anfragen mit Python ermöglicht.
  • Um mit dem Web zu spielen, ist Python Requests ein Muss. Egal, ob es sich um das Aufrufen von APIs, das Herunterladen ganzer Facebook-Seiten und viele andere coole Dinge handelt, man muss eine Anfrage an die URL stellen.
  • Anfragen spielen bei der Bearbeitung eine große Rolle REST-APIs , Und Web Scraping .
  • Schauen Sie sich ein Beispiel-Python-Skript mit Requests und Web Scraping an – Implementierung von Web Scraping in Python mit BeautifulSoup

Anforderungen installieren

Die Installation von Anforderungen hängt von der Art des Betriebssystems ab, das auf eis verwendet wird. Der grundlegende Befehl überall wäre, ein Befehlsterminal zu öffnen und Folgendes auszuführen:



pip install requests>

Die grundlegende Methode zur Installation von Requests auf jedem Betriebssystem besteht darin, die Basisdateien abzurufen und Requests manuell zu installieren. Requests wird aktiv auf GitHub entwickelt, wo der Code immer verfügbar ist. Für Code – Besuche hier . Sie können das öffentliche Repository entweder klonen:

git clone git://github.com/psf/requests.git>

Sobald Sie eine Kopie der Quelle haben, können Sie sie in Ihr eigenes Python-Paket einbetten oder ganz einfach in Ihre Site-Pakete installieren:

cd requestspip install   .>

Für mehr Kasse – So installieren Sie Anfragen in Python – Für Windows, Linux, Mac



Eine Anfrage machen

Das Python-Anfragemodul verfügt über mehrere integrierte Methoden, um HTTP-Anfragen an einen bestimmten URI mithilfe von GET-, POST-, PUT-, PATCH- oder HEAD-Anfragen zu stellen. Eine HTTP-Anfrage soll entweder Daten von einem angegebenen URI abrufen oder Daten an einen Server übertragen. Es fungiert als Anfrage-Antwort-Protokoll zwischen einem Client und einem Server. Lassen Sie uns demonstrieren, wie Sie eine GET-Anfrage an einen Endpunkt stellen. Die GET-Methode wird verwendet, um Informationen vom angegebenen Server mithilfe eines bestimmten URI abzurufen. Die GET-Methode sendet die codierten Benutzerinformationen an die Seitenanforderung angehängt. Die Seite und die codierten Informationen werden durch das Zeichen „?“ getrennt. Zum Beispiel:

https://www.google.com/search?q=hello>

So stellen Sie eine GET-Anfrage über Python-Anfragen

Das Anforderungsmodul von Python bietet eine integrierte Methode namens erhalten() zum Stellen einer GET-Anfrage an einen angegebenen URI.

Syntax

requests.get(url, params={key: value}, args)>

Beispiel :

Versuchen wir zum Beispiel, eine Anfrage an die APIs von Github zu stellen.

Python3




import> requests> > # Making a GET request> r>=> requests.get(>' https://api.github.com/users/naveenkrnl '>)> > # check status code for response received> # success code - 200> print>(r)> > # print content of request> print>(r.content)>

>

>

Speichern Sie diese Datei als request.py und führen Sie sie über das Terminal aus.

python request.py>

Ausgabe -

Python-Requests-Get-Methode

Weitere Informationen finden Sie unter – GET-Methode – Python-Anfragen

HTTP-Anforderungsmethoden

Methode Beschreibung
ERHALTEN Die GET-Methode wird verwendet, um Informationen vom angegebenen Server mithilfe eines bestimmten URI abzurufen.
POST Die POST-Anfragemethode verlangt, dass ein Webserver die im Textkörper der Anfragenachricht enthaltenen Daten akzeptiert, höchstwahrscheinlich zum Speichern
SETZEN Die PUT-Methode fordert, dass die eingeschlossene Entität unter dem angegebenen URI gespeichert wird. Wenn der URI auf eine bereits vorhandene Ressource verweist, wird er geändert. Wenn der URI nicht auf eine vorhandene Ressource verweist, kann der Server die Ressource mit diesem URI erstellen.
LÖSCHEN Die DELETE-Methode löscht die angegebene Ressource
KOPF Die HEAD-Methode fordert eine Antwort an, die mit der einer GET-Anfrage identisch ist, jedoch ohne den Antworttext.
PATCH Es wird für Änderungsfunktionen verwendet. Die PATCH-Anfrage muss nur die Änderungen an der Ressource enthalten, nicht die gesamte Ressource

Antwortobjekt

Wenn man eine Anfrage an einen URI stellt, gibt dieser eine Antwort zurück. Dieses Response-Objekt in Bezug auf Python wird von „requests.method()“ zurückgegeben, wobei die Methode „get“, „post“, „put“ usw. ist. Response ist ein leistungsstarkes Objekt mit vielen Funktionen und Attributen, die bei der Normalisierung von Daten oder der Erstellung idealer Codeteile helfen. Zum Beispiel, Antwort.Statuscode gibt den Statuscode aus den Headern selbst zurück und man kann überprüfen, ob die Anfrage erfolgreich verarbeitet wurde oder nicht. Antwortobjekte können verwendet werden, um viele Features, Methoden und Funktionalitäten zu implizieren.

Beispiel :

Python3




# import requests module> import> requests> # Making a get request> response>=> requests.get(>' https://api.github.com/ '>)> # print request object> print>(response.url)> # print status code> print>(response.status_code)>

>

Logik 1. Ordnung

>

Speichern Sie diese Datei als request.py und führen Sie sie mit dem folgenden Befehl aus

Python request.py>

Antwort-Python-Anfragen

Der Statuscode 200 zeigt an, dass die Anfrage erfolgreich gestellt wurde.

Antwortmethoden

Methode Beschreibung
Antwort.Header Response.headers gibt ein Wörterbuch mit Antwortheadern zurück.
Antwortkodierung „response.encoding“ gibt die Kodierung zurück, die zum Dekodieren von „response.content“ verwendet wird.
Antwort.elapsed Response.elapsed gibt ein Timedelta-Objekt mit der Zeit zurück, die vom Senden der Anfrage bis zum Eintreffen der Antwort verstrichen ist.
Antwort.close() Response.close() schließt die Verbindung zum Server.
Antwort.Inhalt „response.content“ gibt den Inhalt der Antwort in Bytes zurück.
Antwortcookies Response.cookies gibt ein CookieJar-Objekt mit den vom Server zurückgesendeten Cookies zurück.
Antwortverlauf „response.history“ gibt eine Liste von Antwortobjekten zurück, die den Verlauf der Anfrage (URL) enthalten.
Antwort.is_permanent_redirect Response.is_permanent_redirect gibt „True“ zurück, wenn die Antwort die permanente umgeleitete URL ist, andernfalls „False“.
Antwort.is_redirect Response.is_redirect gibt „True“ zurück, wenn die Antwort umgeleitet wurde, andernfalls „False“.
Antwort.iter_content() Response.iter_content() iteriert über den Response.content.
Antwort.json() Response.json() gibt ein JSON-Objekt des Ergebnisses zurück (wenn das Ergebnis im JSON-Format geschrieben wurde, wird andernfalls ein Fehler ausgelöst).
Antwort.URL Response.url gibt die URL der Antwort zurück.
Antworttext Response.text gibt den Inhalt der Antwort in Unicode zurück.
Antwort.Statuscode Response.status_code gibt eine Zahl zurück, die den Status angibt (200 ist OK, 404 ist nicht gefunden).
Antwort.Anfrage Response.request gibt das Anforderungsobjekt zurück, das diese Antwort angefordert hat.
Antwortgrund Response.reason gibt einen Text zurück, der dem Statuscode entspricht.
Response.raise_for_status() Response.raise_for_status() gibt ein HTTPError-Objekt zurück, wenn während des Prozesses ein Fehler aufgetreten ist.
Antwort.ok Response.ok gibt True zurück, wenn status_code kleiner als 200 ist, andernfalls False.
Antwort.Links Response.links gibt die Header-Links zurück.

Authentifizierung mit Python-Anfragen

Bei der Authentifizierung geht es darum, einem Benutzer Berechtigungen für den Zugriff auf eine bestimmte Ressource zu erteilen. Da nicht jedem der Zugriff auf Daten von jeder URL gestattet werden kann, wäre in erster Linie eine Authentifizierung erforderlich. Um diese Authentifizierung zu erreichen, stellt man normalerweise Authentifizierungsdaten über den Autorisierungsheader oder einen vom Server definierten benutzerdefinierten Header bereit.

Beispiel -

Python3




# import requests module> import> requests> from> requests.auth>import> HTTPBasicAuth> # Making a get request> response>=> requests.get(>' https://api.github.com / user, '>,> >auth>=> HTTPBasicAuth(>'user'>,>'pass'>))> # print request object> print>(response)>

>

Zeichenfolge zu Zeichen
>

Ersetzen Sie user und pass durch Ihren Benutzernamen und Ihr Passwort. Es authentifiziert die Anfrage und gibt eine Antwort 200 zurück, andernfalls wird der Fehler 403 zurückgegeben.

Authenticate-Python-Anfragen

Für weitere Informationen besuchen Sie – Authentifizierung mit Python-Anfragen

Überprüfung des SSL-Zertifikats

Requests überprüft SSL-Zertifikate für HTTPS-Anfragen, genau wie ein Webbrowser. SSL-Zertifikate sind kleine Datendateien, die einen kryptografischen Schlüssel digital mit den Details einer Organisation verknüpfen. Oft wird eine Website mit einem SSL-Zertifikat als sichere Website bezeichnet. Standardmäßig ist die SSL-Überprüfung aktiviert und Requests löst einen SSLError aus, wenn das Zertifikat nicht überprüft werden kann.

Deaktivieren Sie die SSL-Zertifikatsüberprüfung

Versuchen wir, mithilfe von Python-Anfragen auf eine Website mit einem ungültigen SSL-Zertifikat zuzugreifen

Python3

enthält Teilzeichenfolge Java




# import requests module> import> requests> # Making a get request> response>=> requests.get(>' https://expired.badssl.com/ '>)> # print request object> print>(response)>

>

>

Ausgabe :-

ssl-certificate-verification-python-requests

Diese Website verfügt nicht über SSL-Einrichtung und löst daher diesen Fehler aus. Man kann den Link zum Zertifikat auch nur zur Validierung über Python-Anfragen übergeben.

Python3




# import requests module> import> requests> # Making a get request> response>=> requests.get(>' https://github.com '>, verify>=>'/path/to/certfile'>)> # print request object> print>(response)>

>

>

Dies würde funktionieren, wenn der angegebene Pfad für das SSL-Zertifikat für github.com korrekt ist.

Für weitere Besuche- SSL-Zertifikatsüberprüfung – Python-Anfragen

Sitzungsobjekte

Das Sitzungsobjekt ermöglicht es, bestimmte Parameter über Anfragen hinweg beizubehalten. Außerdem werden Cookies für alle von der Sitzungsinstanz gestellten Anforderungen beibehalten und das Verbindungspooling von urllib3 verwendet. Wenn also mehrere Anfragen an denselben Host gestellt werden, wird die zugrunde liegende TCP-Verbindung wiederverwendet, was zu einer erheblichen Leistungssteigerung führen kann. Ein Sitzungsobjekt umfasst alle Methoden ab Anfragen.

Verwendung von Sitzungsobjekten

Lassen Sie uns die Verwendung von Sitzungsobjekten veranschaulichen, indem wir ein Cookie für eine URL setzen und dann erneut eine Anfrage stellen, um zu überprüfen, ob ein Cookie gesetzt ist.

Python3




# import requests module> import> requests> > # create a session object> s>=> requests.Session()> > # make a get request> s.get(>' https://httpbin.org/cookies/set/sessioncookie/123456789 '>)> > # again make a get request> r>=> s.get(>' https://httpbin.org/cookies '>)> > # check if cookie is still set> print>(r.text)>

>

Zeichenfolge Java indexof
>

Ausgabe:

Sitzungsobjekte-Python-Anfragen

Weitere Informationen finden Sie unter – Sitzungsobjekte – Python-Anfragen

Abschluss

Die Python Request Library ist ein leistungsstarkes Tool zum Erstellen von HTTP-Anfragen und zur Interaktion mit Web-APIs. In diesem Tutorial haben wir die Grundlagen des Sendens von GET- und POST-Anfragen, der Handhabung von Parametern und Headern sowie der Verwaltung von Antwortdaten behandelt. Die Einfachheit und das intuitive Design der Bibliothek machen sie sowohl für Anfänger als auch für erfahrene Entwickler zugänglich.