Python中使用urllib2防止302跳转的代码例子


Posted in Python onJuly 07, 2014

说明:python的urllib2获取网页(urlopen)会自动重定向(301,302)。但是,有时候我们需要获取302,301页面的状态信息。就必须获取到转向前的调试信息。

下面代码将可以做到避免302重定向到新的网页

#!/usr/bin/python
# -*- coding: utf-8 -*-
#encoding=utf-8
#Filename:states_code.py
 
import urllib2
 
class RedirctHandler(urllib2.HTTPRedirectHandler):
  """docstring for RedirctHandler"""
  def http_error_301(self, req, fp, code, msg, headers):
    pass
  def http_error_302(self, req, fp, code, msg, headers):
    pass
 
def getUnRedirectUrl(url,timeout=10):
  req = urllib2.Request(url)
  debug_handler = urllib2.HTTPHandler(debuglevel = 1)
  opener = urllib2.build_opener(debug_handler, RedirctHandler)
 
  html = None
  response = None
  try:
    response = opener.open(url,timeout=timeout)
    html = response.read()
  except urllib2.URLError as e:
    if hasattr(e, 'code'):
      error_info = e.code
    elif hasattr(e, 'reason'):
      error_info = e.reason
  finally:
    if response:
      response.close()
  if html:
    return html
  else:
    return error_info
 
html = getUnRedirectUrl('http://3water.com')
print html
Python 相关文章推荐
Python学习笔记之os模块使用总结
Nov 03 Python
对于Python中线程问题的简单讲解
Apr 03 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
Apr 18 Python
Python切片操作深入详解
Jul 27 Python
python实现局域网内实时通信代码
Dec 22 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
用python爬取历史天气数据的方法示例
Dec 30 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
Feb 17 Python
Python + selenium + crontab实现每日定时自动打卡功能
Mar 31 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
python右对齐的实例方法
Jul 05 Python
python中使用urllib2伪造HTTP报头的2个方法
Jul 07 #Python
python实现多线程采集的2个代码例子
Jul 07 #Python
Python程序员开发中常犯的10个错误
Jul 07 #Python
python采用requests库模拟登录和抓取数据的简单示例
Jul 05 #Python
浅析python 中__name__ = '__main__' 的作用
Jul 05 #Python
python在windows下实现备份程序实例
Jul 04 #Python
python调用短信猫控件实现发短信功能实例
Jul 04 #Python
You might like
apache rewrite_module模块使用教程
2008/01/10 PHP
PHP memcache扩展的三种安装方法
2009/04/26 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
JavaScript实现轮播图特效
2020/04/10 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
python读取ini配置文件过程示范
2019/12/23 Python
Python将字典转换为XML的方法
2020/08/01 Python
基于Jquery和Css3代码制作可以缩放的搜索框
2015/11/19 HTML / CSS
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
自我推荐书
2013/12/04 职场文书
职业生涯规划怎么写
2013/12/29 职场文书
思想品德课教学反思
2014/02/10 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
学生吸烟检讨书
2014/09/14 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
OpenCV全景图像拼接的实现示例
2021/06/05 Python