En Python, j'utilise urllib2 pour ouvrir une URL. Cette URL redirige vers une autre URL, qui redirige vers une autre URL.
Je souhaite imprimer l'url après chaque redirection.
Par exemple
-> = redirige vers
A -> B -> C -> D
Je veux imprimer l'URL de B, C et D (A est déjà connu car c'est l'URL de départ).
La meilleure façon est probablement de sous-classer urllib2.HTTPRedirectHandler
. Plongez dans Python chapitre sur les redirections peut être utile.
Vous pouvez facilement obtenir D en demandant simplement l'URL actuelle.
req = urllib2.Request(starturl, datagen, headers)
res = urllib2.urlopen(req)
finalurl = res.geturl()
Pour gérer les redirections intermédiaires, vous devrez probablement créer votre propre ouvreur , en utilisant HTTPRedirectHandler qui enregistre les redirections.
Pour Python 3, la solution avec urllib
est beaucoup plus simple:
import urllib
def resolve(url):
return urllib.request.urlopen(url).geturl()