使用urllib2.urlopen时如何获得最终的重定向URL?

时间:2010-08-24 12:12:09

标签: python urllib2

我正在使用urllib2.urlopen方法打开网址并获取网页的标记。其中一些网站使用301/302重定向重定向我。我想知道我被重定向到的最终URL。我怎么能得到这个?

4 个答案:

答案 0 :(得分:33)

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

  

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

示例:

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

答案 1 :(得分:4)

urllib2.urlopen的返回值有geturl()方法,该方法应返回实际(即最后一次重定向)网址。

答案 2 :(得分:1)

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

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

答案 3 :(得分:-1)

您可以将HttpLib2follow_all_redirects = True一起使用,并从响应标头中获取content-location。有关示例,请参阅my answer to 'httplib is not getting all the redirect codes'