Estimados
 
como es posible obtener el status de un url en python para que ejecute distintas funciones segun el status ejemplo 
if status == 400
    siguientes acciones
    elif status == 500
    otras acciones
    elif status == 300
    otras
    elif status == 200
    print ("esta ok") 
lo pregunto por que al hacer 
req = urllib.request.Request(url, data, headers)
urllib.request.urlopen(req) 
me bota la aplicación y me da el siguiente error solo cuando es 404 
Código:
 Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.2/urllib/request.py", line 138, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/local/lib/python3.2/urllib/request.py", line 375, in open
    response = meth(req, response)
  File "/usr/local/lib/python3.2/urllib/request.py", line 487, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/local/lib/python3.2/urllib/request.py", line 413, in error
    return self._call_chain(*args)
  File "/usr/local/lib/python3.2/urllib/request.py", line 347, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python3.2/urllib/request.py", line 495, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
  intente con un try, pero nose como diferenciarlo para cada caso.