Se ti ritrovi spesso a recuperare dati dai siti Web, dovresti probabilmente considerare di automatizzare il processo. A volte indicato come "web scraping", il processo è comune per i siti che non forniscono un'API o un feed formale. Ovviamente, non andrai da nessuna parte se il sito che stai cercando di recuperare non è disponibile.

Se gestisci il tuo sito, probabilmente hai già dovuto affrontare tempi di inattività. Può essere frustrante, farti perdere visitatori e interrompere qualsiasi attività di cui il tuo sito potrebbe essere responsabile. In tali circostanze, vale la pena poter controllare facilmente la disponibilità del tuo sito web.

Python è un ottimo linguaggio per lo scripting e la sua sintassi concisa ma leggibile rende l'implementazione di un controllo del sito un compito semplice.

Creazione del tuo controllo sito web personalizzato

Il controllo del sito Web è fatto su misura per ospitare più siti Web contemporaneamente. Ciò ti consente di cambiare facilmente i siti che non ti interessano più o di iniziare a controllare i siti che lancerai in futuro. Il checker è un'"app scheletro" ideale su cui è possibile sviluppare ulteriormente, ma dimostra un approccio di base al recupero dei dati Web.

instagram viewer

Importa librerie in Python

Per avviare il progetto, è necessario importare il file richieste libreria in Python con importare funzione.

importare richieste

La libreria Richieste è utile per comunicare con i siti web. Puoi usarlo per inviare richieste HTTP e ricevere dati di risposta.

Archivia gli URL del sito Web in un elenco

Dopo aver importato la libreria, è necessario definire e archiviare gli URL del sito Web in un elenco. Questo passaggio ti consente di conservare più URL, che puoi controllare con il controllo del sito web.

importare richieste

URL_sito = [
" https://www.google.co.in",
" https://www.yahoo.com",
" https://www.amazon.co.in",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]

La variabile URL del sito memorizza l'elenco di URL. All'interno dell'elenco, definisci ogni URL che desideri controllare come una singola stringa. Puoi utilizzare gli URL di esempio nel codice per il test oppure puoi sostituirli per iniziare subito a controllare i tuoi siti.

Quindi, archivia i messaggi per i comuni Codici di risposta HTTP. Puoi tenerli in un dizionario e indicizzare ogni messaggio in base al codice di stato corrispondente. Il tuo programma può quindi utilizzare questi messaggi invece dei codici di stato per una migliore leggibilità.

stati = {
200: "Sito web disponibile",
301: "Reindirizzamento permanente",
302: "Reindirizzamento temporaneo",
404: "Non trovato",
500: "Errore interno del server",
503: "Servizio non disponibile"
}

Creazione di un ciclo per controllare lo stato del sito web

Per controllare ogni URL a turno, ti consigliamo di farlo scorrere l'elenco di siti web. All'interno del loop, controlla lo stato di ogni sito inviando una richiesta tramite la libreria delle richieste.

per url in URL del sito:
Tentativo:
risposta_web = request.get (url)
stampa (url, stati[web_response.status_code])

tranne:
stampa (url, stati[web_response.status_code])

Dove:

  • per l'URL...scorre l'elenco di URL.
  • url è la variabile a cui il ciclo for assegna ogni URL.
  • provare/eccettogestisce eventuali eccezioni che può sorgere.
  • risposta_web è una variabile che fornisce una proprietà con il codice di stato della risposta

L'intero frammento di codice

Se preferisci rivedere l'intero codice in una volta sola, ecco un elenco completo del codice come riferimento.

importare richieste

URL_sito = [
" https://www.google.co.in",
" https://www.yahoo.com",
" https://www.amazon.co.in",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]

stati = {
200: "Sito web disponibile",
301: "Reindirizzamento permanente",
302: "Reindirizzamento temporaneo",
404: "Non trovato",
500: "Errore interno del server",
503: "Servizio non disponibile"
}

per url in URL del sito:
Tentativo:
risposta_web = request.get (url)
stampa (url, stati[web_response.status_code])

tranne:
stampa (url, stati[web_response.status_code])

Ed ecco un esempio di esecuzione del codice:

Funzionalità di codifica di Python nel web scraping

Le librerie di terze parti di Python sono ideali per attività come il web scraping e il recupero dei dati tramite HTTP.

È possibile inviare richieste automatizzate ai siti Web per eseguire vari tipi di attività. Questi potrebbero includere la lettura dei titoli delle notizie, il download di immagini e l'invio automatico di e-mail.