在Python中,我使用urllib2打开一个网址。此网址重定向到另一个网址,该网址会重定向到另一个网址。
我希望在每次重定向后打印出网址。
例如
- > =重定向到
A - > B - > C - > d
我想打印B,C和D的URL(A已经知道,因为它是起始URL)。
答案 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()