您好,欢迎来到酷申汽车网。
搜索
您的当前位置:首页Python中使用urllib2防止302跳转的代码例子

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

来源:酷申汽车网


说明: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://jb51.net')
print html

Copyright © 2019- kushenhuo.com 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务