Python 使用urllib2.urlopen时,如何获取最终重定向URL?

Python 使用urllib2.urlopen时,如何获取最终重定向URL?,python,urllib2,Python,Urllib2,我正在使用urllib2.urlopen方法打开URL并获取网页的标记。其中一些站点使用301/302重定向来重定向我。我想知道我被重定向到的最终URL。如何获取此信息?调用返回的文件对象的.geturl()方法。根据: geturl()-返回检索到的资源的URL,通常用于确定是否遵循了重定向 例如: import urllib2 response = urllib2.urlopen('http://tinyurl.com/5b2su2') response.geturl() # 'http:/

我正在使用
urllib2.urlopen
方法打开URL并获取网页的标记。其中一些站点使用301/302重定向来重定向我。我想知道我被重定向到的最终URL。如何获取此信息?

调用返回的文件对象的
.geturl()
方法。根据:

geturl()
-返回检索到的资源的URL,通常用于确定是否遵循了重定向

例如:

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

urllib2.urlopen
的返回值有一个
geturl()
方法,该方法应返回实际(即上次重定向)url。

您可以使用
HttpLib2
follow\u all\u redirects=True
并从响应头获取
内容位置。请参阅以获取示例。

例如:
urllib2.urlopen('ORIGINAL LINK').geturl()


urllib2.urlopen(urllib2.Request('ORIGINAL LINK')).geturl()

当存在多个中间url且我想要最终url时,如何处理?这不适用于那种情况。