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
重定义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)
相关文章推荐
- 处理Python中urllib2/mechanize库进行socket通信超时的问题
- python网络数据采集-处理重定向问题
- python urllib2 解决重定向问题
- python urllib爬取网页编码问题
- TypeError: buffer is too small for requested array python 问题处理
- SAE Python urllib2因请求头字典键名为Unicode类型引发的异常问题
- python抓取网页时字符集转换问题处理方案分享
- Python中urllib.urlencode中文字符的一个问题
- Python小笔记――urllib2得到重定向最终链接
- Python SyntaxError: Non-ASCII character Python中文处理问题
- [python]使用virtualenv处理python版本问题
- python3关于urllib中urlopen报错问题的解决
- Python使用urllib模块的urlopen超时问题解决方法
- 解决nohup重定向python输出到文件不成功的问题
- python urllib爬取网页编码问题
- python 调用图像处理类库PIL 时遇到的问题
- python3.5 urllib.request.urlopen 中文url问题
- python一道关于异常处理的问题
- python urllib2 cookielib处理验证码模拟人人登陆
- Python opencv处理图像时文件名含有中文问题