This article mainly introduces the example of using urllib2 in Python to prevent 302 jump, that is, to avoid 302 jump implementation. For more information, see urllib2 in python to obtain the webpage (urlopen) will be automatically redirected (301,302 ). However, sometimes we need to obtain the status information of the 302,301 page. You must obtain the debugging information before turning.
The following code avoids 302 redirection to a new webpage.
#!/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