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线程锁(thread)学习示例
Dec 04 Python
python多线程编程中的join函数使用心得
Sep 02 Python
Python实现多线程HTTP下载器示例
Feb 11 Python
用python实现刷点击率的示例代码
Feb 21 Python
在Django中实现添加user到group并查看
Nov 18 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
检测tensorflow是否使用gpu进行计算的方式
Feb 03 Python
Keras使用tensorboard显示训练过程的实例
Feb 15 Python
python实现扫雷游戏的示例
Oct 20 Python
Python基础之条件语句详解
Jun 16 Python
pycharm代码删除恢复的方法
Jun 26 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 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
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
用javascript实现自定义标签
2007/05/08 Javascript
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
javascript object array方法使用详解
2012/12/03 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
2019/05/30 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
Linux下编译安装MySQL-Python教程
2015/02/02 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
老生常谈python中的重载
2018/11/11 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
pytorch permute维度转换方法
2018/12/14 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
详解python statistics模块及函数用法
2019/10/27 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
介绍Ibatis的核心类
2013/11/18 面试题
C++的几个面试题附答案
2016/08/03 面试题
绘画设计学生的个人自我评价
2013/09/20 职场文书
教师党员一句话承诺
2014/03/28 职场文书
银行求职信
2014/05/31 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript