Python中使用urllib2防止302跳转的代码例子
说明:python的urllib2获取网页(urlopen)会自动重定向(301,302)。但是,有时候我们需要获取302,301页面的状态信息。就必须获取到转向前的调试信息。
下面代码将可以做到避免302重定向到新的网页
#!/usr/bin/python
#-*-coding:utf-8-*-
#encoding=utf-8
#Filename:states_code.py
importurllib2
classRedirctHandler(urllib2.HTTPRedirectHandler):
"""docstringforRedirctHandler"""
defhttp_error_301(self,req,fp,code,msg,headers):
pass
defhttp_error_302(self,req,fp,code,msg,headers):
pass
defgetUnRedirectUrl(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()
excepturllib2.URLErrorase:
ifhasattr(e,'code'):
error_info=e.code
elifhasattr(e,'reason'):
error_info=e.reason
finally:
ifresponse:
response.close()
ifhtml:
returnhtml
else:
returnerror_info
html=getUnRedirectUrl('http://jb51.net')
printhtml
热门推荐
10 祝孙辈生日祝福语简短
11 恋人跨年祝福语大全简短
12 考大学敬酒简短祝福语
13 开工投产大吉祝福语 简短
14 偶然结婚祝福语朋友简短
15 感谢学长学姐祝福语简短
16 戏精的祝福语简短
17 我要结婚祝福语简短
18 婚前女儿生日祝福语简短