Python中使用urllib2防止302跳转的代码例子
发布时间:2020-12-16 19:44:16 所属栏目:Python 来源:网络整理
导读:说明:python的urllib2获取网页(urlopen)会自动重定向(301,302)。但是,有时候我们需要获取302,301页面的状态信息。就必须获取到转向前的调试信息。 下面代码将可以做到避免302重定向到新的网页 #!/usr/bin/python# -*- coding: utf-8 -*-#encoding=utf-8#
说明: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,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://aspzz.cn') print html
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |