He estado revisando la documentación de Python Requests pero no veo ninguna funcionalidad para lo que estoy tratando de lograr.
En mi guión estoy configurando allow_redirects=True
.
Me gustaría saber si la página ha sido redirigida a otra cosa, cuál es la nueva URL.
Por ejemplo, si la URL de inicio fuera: www.google.com/redirect
Y la URL final es www.google.co.uk/redirected
¿Cómo obtengo esa URL?
python
http
redirect
python-requests
Daniel Pilch
fuente
fuente
urllib2
Respuestas:
Está buscando el historial de solicitudes .
El
response.history
atributo es una lista de respuestas que llevaron a la URL final, que se puede encontrar enresponse.url
.Manifestación:
fuente
Esto responde a una pregunta ligeramente diferente, pero como me quedé atascado en esto, espero que pueda ser útil para otra persona.
Si desea usar
allow_redirects=False
y llegar directamente al primer objeto de redireccionamiento, en lugar de seguir una cadena de ellos, y solo desea obtener la ubicación de redireccionamiento directamente del objeto de respuesta 302, entoncesr.url
no funcionará. En cambio, es el encabezado "Ubicación":fuente
r.next
? Pensé que contendría unPreparedRequest
apunte a la URL de redireccionamiento, pero ese no parece ser el caso ...la documentación tiene esta propaganda https://requests.readthedocs.io/en/master/user/quickstart/#redirection-and-history
fuente
Creo que será más seguro llamar a las solicitudes.head en lugar de las solicitudes.get cuando se maneja la redirección de URL, verifique el problema de github aquí :
fuente
Para python3.5, puede usar el siguiente código:
fuente