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实现k-means聚类算法
Feb 23 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
Jul 13 Python
python批量修改图片大小的方法
Jul 24 Python
python+Splinter实现12306抢票功能
Sep 25 Python
Python面向对象之类和实例用法分析
Jun 08 Python
python set集合使用方法解析
Nov 05 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
Jan 08 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
python小白切忌乱用表达式
May 29 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
Jan 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
Views rows style模板重写代码
2011/05/16 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
JavaScript 参考教程
2006/12/29 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
深度解读vue-resize的具体用法
2020/07/08 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
[48:41]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
简单谈谈python的反射机制
2016/06/28 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
Python对wav文件的重采样实例
2020/02/25 Python
Python接收手机短信的代码整理
2020/08/02 Python
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
求职推荐信
2013/10/28 职场文书
总裁岗位职责
2013/12/04 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
幼儿园小班评语
2014/04/18 职场文书
材料化学专业求职信
2014/07/15 职场文书
教师外出学习心得体会
2016/01/18 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
2019行政前台转正申请书范文3篇
2019/08/15 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL