Mridang Agarwalla Mridang Agarwalla - 3 months ago 16
Python Question

How can I get the final redirect URL when using urllib2.urlopen?

I'm using the

urllib2.urlopen
method to open a URL and fetch the markup of a webpage. Some of these sites redirect me using the 301/302 redirects. I would like to know the final URL that I've been redirected to. How can I get this?

Answer

Call the .geturl() method of the file object returned. Per the urllib2 docs:

geturl() — return the URL of the resource retrieved, commonly used to determine if a redirect was followed

Example:

>>> import urllib2
>>> response = urllib2.urlopen('http://tinyurl.com/5b2su2')
>>> response.geturl()
'http://stackoverflow.com/'