Come identifico l'errore vero?

1

Sto scrivendo un programma per eliminare alcuni dati dal web. Le pagine sono sequenziali (1,2,3 ...), ma non ho idea di quando si fermerà. Combino un prefisso e un intero per creare un collegamento per l'urllib python per analizzarlo. Ad esempio: "http://domino.dominio.com/pagina" + "1" + ".htm".

Quindi la richiesta fallirebbe se il link non fosse valido, tuttavia, potrebbe esserci qualche altro errore come un errore di rete, la connessione scaduta che si risolverà da sola. Potrei riprovare un paio di volte con questi errori.

Oltre all'errore "Pagina non trovata", potrebbe esserci un altro errore come "Errore interno del server" che è stato generato quando il server non è attivo. L'errore non si risolverà da solo. Probabilmente dovrei spostare o fermare il programma.

Torna al mio programma. Perché non so quando finirà l'indice della pagina, quindi imposto il numero intero finale a 9999. I collegamenti potrebbero esaurirsi dopo alcune centinaia. Dovrei identificarlo e inviare una "pausa" ad esso.

Che cosa farai? Raccogliere tutti gli errori possibili e metterli sulla riga di eccezione e trattarli in modo diverso? Ora mi fermo solo dopo 10 fallimenti.

    
posta lamwaiman1988 26.07.2012 - 09:36
fonte

1 risposta

3

Questo è ciò che codici di stato HTTP sono per.

Il server restituirà un codice a 3 cifre insieme a un testo leggibile dall'uomo e sarà possibile adattare la gestione delle eccezioni al codice a 3 cifre. Tutte le librerie di gestione HTTP dovrebbero restituire quel codice con l'eccezione se ne lanciano una.

Un 404 significa che la pagina non è stata trovata, quindi puoi interrompere il tuo programma in quel momento, probabilmente hai già raggiunto il numero più alto.

Gli errori 50x indicano errori del server, ma un errore 502, 503 o 504 può essere temporaneo, quindi è possibile riprovare la stessa richiesta (con un ritardo, forse, per consentire al server di recuperare). Lo stesso vale per 408, ma quello è visto solo raramente e solo dai server proxy.

    
risposta data 26.07.2012 - 10:10
fonte

Leggi altre domande sui tag