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算法应用实战之队列详解
Feb 04 Python
用Python实现KNN分类算法
Dec 22 Python
Python3 queue队列模块详细介绍
Jan 05 Python
python3.5安装python3-tk详解
Apr 26 Python
如何安装2019Pycharm最新版本(详细教程)
Sep 26 Python
tensorflow 变长序列存储实例
Jan 20 Python
Django使用Celery加redis执行异步任务的实例内容
Feb 20 Python
MATLAB数学建模之画图汇总
Jul 16 Python
pycharm使用技巧之自动调整代码格式总结
Nov 04 Python
python音频处理的示例详解
Dec 23 Python
pandas中DataFrame检测重复值的实现
May 26 Python
Python函数对象与闭包函数
Apr 13 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两个n位的二进制整数相加问题的解决
2018/08/26 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
js常用排序实现代码
2010/12/28 Javascript
影响jQuery使用的14个方面
2014/09/01 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
js原生代码实现轮播图的实例讲解
2017/07/28 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
举例讲解Python中的算数运算符的用法
2015/05/13 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
六个窍门助你提高Python运行效率
2015/06/09 Python
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
python实现计算器功能
2019/10/31 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
农村门前三包责任书
2014/07/25 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
2015年组织部工作总结
2015/04/03 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers