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 新婚过年祝福语大全简短