Ich habe die Python Requests-Dokumentation durchgesehen, aber ich kann keine Funktionalität für das sehen, was ich erreichen möchte.
In meinem Skript stelle ich ein allow_redirects=True
.
Ich würde gerne wissen, ob die Seite zu etwas anderem umgeleitet wurde, wie lautet die neue URL.
Zum Beispiel, wenn die Start-URL war: www.google.com/redirect
Und die endgültige URL ist www.google.co.uk/redirected
Wie bekomme ich diese URL?
python
http
redirect
python-requests
Daniel Pilch
quelle
quelle
urllib2
Antworten:
Sie suchen nach dem Anforderungsverlauf .
Das
response.history
Attribut ist eine Liste von Antworten, die zur endgültigen URL geführt haben, die in zu finden istresponse.url
.Demo:
quelle
Dies beantwortet eine etwas andere Frage, aber da ich selbst daran festgehalten habe, hoffe ich, dass es für jemand anderen nützlich sein könnte.
Wenn Sie
allow_redirects=False
das erste Umleitungsobjekt verwenden und direkt darauf zugreifen möchten , anstatt einer Kette davon zu folgen, und Sie nur den Umleitungsort direkt aus dem 302-Antwortobjekt abrufen möchten,r.url
funktioniert dies nicht. Stattdessen ist es der Header "Standort":quelle
r.next
los ist ? Ich dachte, das würde einenPreparedRequest
Hinweis auf die Weiterleitungs-URL enthalten, aber das scheint nicht der Fall zu sein ...Die Dokumentation enthält diesen Klappentext https://requests.readthedocs.io/en/master/user/quickstart/#redirection-and-history
quelle
Ich denke, Requests.head anstelle von Requests.get ist sicherer beim Aufrufen der URL-Umleitung. Überprüfen Sie das Github-Problem hier :
quelle
Für Python3.5 können Sie den folgenden Code verwenden:
quelle