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

Mridang Agarwalla picture Mridang Agarwalla · Aug 24, 2010 · Viewed 32.7k times · Source

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

mmmmmm picture mmmmmm · Aug 24, 2010

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/'