Come posso rilevare gli errori 404 e 403 per le pagine in python e urllib (2), ad esempio?Errori HTTP durante la cattura
Ci sono modi veloci senza grandi involucri di classe?
Aggiunto info (stack trace):
Traceback (most recent call last):
File "test.py", line 3, in <module>
page = urllib2.urlopen("http://localhost:4444")
File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.6/urllib2.py", line 391, in open
response = self._open(req, data)
File "/usr/lib/python2.6/urllib2.py", line 409, in _open
'_open', req)
File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
result = func(*args)
File "/usr/lib/python2.6/urllib2.py", line 1161, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "/usr/lib/python2.6/urllib2.py", line 1136, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 111] Connection refused>
Questo funziona per 403, ma non 404. 'urllib2.URLError:' –
Ockonal
Ecco perché non è un errore 404 che stai vedendo. Il messaggio di errore dice "Connessione rifiutata" - non "Pagina non trovata". –
Sì, hai ragione. Ma c'è anche una lunga traccia di eccezioni. Quindi questa è un'eccezione non riconosciuta, giusto? Il problema principale è catturare esattamente quell'errore. Potresti aiutare anche con questo? – Ockonal