您的位置:首页 > 编程语言 > Python开发

python urllib2处理重定向的问题

2012-02-27 15:33 567 查看
需求:因为urllib2自动处理了重定向,如果取到某一步重定向的Location字段?

重定义urllib2.HTTPRedirectHandler,把重定向过程中的Location都取出来,就OK,如下代码:

class SmartRedirectHandler(urllib2.HTTPRedirectHandler):

RedURLs301 = []

RedURLs302 = []

def Getredurl301(self):

return SmartRedirectHandler.RedURLs301

def Getredurl302(self):

return SmartRedirectHandler.RedURLs302

def http_error_301(self, req, fp, code, msg, headers):

if headers.has_key("Location"):

SmartRedirectHandler.RedURLs301.append(headers["Location"])

result = urllib2.HTTPRedirectHandler.http_error_301(

self, req, fp, code, msg, headers)

return result

def http_error_302(self, req, fp, code, msg, headers):

if headers.has_key("Location"):

SmartRedirectHandler.RedURLs302.append(headers["Location"])

result = urllib2.HTTPRedirectHandler.http_error_302(

self, req, fp, code, msg, headers)

return result

opener = urllib2.build_opener(SmartRedirectHandler)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: