Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die endgültige URL nach Weiterleitungen mithilfe von Python-Anfragen erhalten?
Umgeleitete URLs mit Python-Anfragen abrufen
Requests, eine beliebte Python-Bibliothek zum Senden von HTTP-Anfragen, ermöglicht es Benutzern, Weiterleitungen durch Festlegen von „allow_redirects“ zu verarbeiten Parameter auf True. Dadurch wird zwar das Problem der automatischen Weiterleitungen behoben, Sie wissen jedoch nichts über die Ziel-URL. Bei dieser Frage geht es darum, wie man nach einer Reihe von Weiterleitungen die endgültige URL erhält.
Die Lösung liegt im Attribut „response.history“. Nach einer erfolgreichen Anfrage gibt „response.url“ die endgültige URL zurück, während „response.history“ eine Liste aller Zwischenantworten und ihrer jeweiligen URLs bereitstellt. Anhand dieser Daten können Sie die Weiterleitungen überprüfen und das endgültige Ziel bestimmen.
Der folgende Codeausschnitt veranschaulicht diesen Ansatz:
import requests response = requests.get(someurl, allow_redirects=True) if response.history: print("Request was redirected") for resp in response.history: print(resp.status_code, resp.url) print("Final destination:") print(response.status_code, response.url) else: print("Request was not redirected")
Dieser Code prüft, ob das Attribut „response.history“ nicht leer ist , was auf das Auftreten von Weiterleitungen hinweist. Jedes resp-Objekt im Verlauf enthält den Statuscode und die URL einer Zwischenantwort. Schließlich stellt „response.url“ die endgültige URL bereit.
Betrachten Sie das folgende Beispiel:
>>> import requests >>> response = requests.get('http://httpbin.org/redirect/3') >>> response.history (<Response [302]>, <Response [302]>, <Response [302]>) >>> for resp in response.history: ... print(resp.status_code, resp.url) ... 302 http://httpbin.org/redirect/3 302 http://httpbin.org/redirect/2 302 http://httpbin.org/redirect/1 >>> print(response.status_code, response.url) 200 http://httpbin.org/get
Diese Ausgabe bestätigt, dass die Anfrage dreimal umgeleitet wurde, bevor sie das endgültige Ziel unter http:// erreichte. httpbin.org/get bietet ein vollständiges Bild der Weiterleitungskette.
Das obige ist der detaillierte Inhalt vonWie kann ich die endgültige URL nach Weiterleitungen mithilfe von Python-Anfragen erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!