2011-02-04 33 views
27

En Python, estoy usando urllib2 para abrir una url. Esta url redirige a otra url, que redirige a otra url.Cómo obtener la URL de una redirección con Python

Deseo imprimir la url después de cada redirección.

Por ejemplo

-> = redirige a

A -> B -> C -> D

Quiero imprimir la URL de B, C y D (A ya es conocida porque es la URL de inicio).

+1

por qué no usar el módulo de solicitudes, 'actualURL = requests.head (passedurl, timeout = 100.0, encabezados = {'Aceptar-Codificar': 'identidad'}). Headers.get ('location', passedurl)'? –

Respuesta

44

Puede obtener fácilmente D simplemente solicitando la URL actual.

req = urllib2.Request(starturl, datagen, headers) 
res = urllib2.urlopen(req) 
finalurl = res.geturl() 

Para hacer frente a la intermedia redirige probablemente tendrá que build your own opener, utilizando HTTPRedirectHandler que registra las redirecciones.

+6

No responde realmente la pregunta, ¿verdad? – sberry

+2

Resuelve la pregunta más común de "¿a qué me llegó la url?" –

+2

aquí hay una respuesta similar usando 'requests': http://stackoverflow.com/a/20475712/309483 –

Cuestiones relacionadas