如何使用Python获取重定向的URL

时间:2011-02-04 20:19:53

标签: python redirect urllib2

在Python中,我使用urllib2打开一个网址。此网址重定向到另一个网址,该网址会重定向到另一个网址。

我希望在每次重定向后打印出网址。

例如

- > =重定向到

A - > B - > C - > d

我想打印B,C和D的URL(A已经知道,因为它是起始URL)。

3 个答案:

答案 0 :(得分:45)

只需询问当前网址即可轻松获取D.

req = urllib2.Request(starturl, datagen, headers)
res = urllib2.urlopen(req)
finalurl = res.geturl()

要处理中间重定向,您可能需要build your own opener,使用记录重定向的HTTPRedirectHandler

答案 1 :(得分:9)

可能最好的方法是继承urllib2.HTTPRedirectHandler。深入了解Python的chapter on redirects可能会有所帮助。

答案 2 :(得分:1)

对于Python 3,使用urllib的解决方案要简单得多:

import urllib


def resolve(url):
    return urllib.request.urlopen(url).geturl()