我正在使用urllib2.urlopen
方法打开网址并获取网页的标记。其中一些网站使用301/302重定向重定向我。我想知道我被重定向到的最终URL。我怎么能得到这个?
答案 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)
您可以将HttpLib2
与follow_all_redirects = True
一起使用,并从响应标头中获取content-location
。有关示例,请参阅my answer to 'httplib is not getting all the redirect codes'。