#!/usr/bin/python3 import urllib.request import traceback for name in ('abs_redirect', 'rel_redirect'): try: url = 'http://www.jspenguin.org/{0}'.format(name) print("Opening {0}...".format(url)) u = urllib.request.urlopen(url) print("Returned {0} bytes".format(len(u.read()))) except: print("Failed:") traceback.print_exc() # Opening http://www.jspenguin.org/abs_redirect... # Returned 3020 bytes # Opening http://www.jspenguin.org/rel_redirect... # Failed: # Traceback (most recent call last): # File "/home/jspenguin/www/main/rel_redirect.py", line 9, in # u = urllib.request.urlopen(url) # File "/usr/lib/python3.2/urllib/request.py", line 138, in urlopen # return opener.open(url, data, timeout) # File "/usr/lib/python3.2/urllib/request.py", line 375, in open # response = meth(req, response) # File "/usr/lib/python3.2/urllib/request.py", line 487, in http_response # 'http', request, response, code, msg, hdrs) # File "/usr/lib/python3.2/urllib/request.py", line 407, in error # result = self._call_chain(*args) # File "/usr/lib/python3.2/urllib/request.py", line 347, in _call_chain # result = func(*args) # File "/usr/lib/python3.2/urllib/request.py", line 560, in http_error_302 # headers, fp) # urllib.error.HTTPError: HTTP Error 302: Found - Redirection to url '/software/' is not allowed