Aggiornato il 17 Marzo 2022 alle 16:28 • Tempo di lettura: 3 minuti • Autore: Michele Sabatini
Ho deciso di scrivere questo articolo perché ultimamente mi sto dilettando nella programmazione in Python, linguaggio di programmazione che sto sempre più apprezzando per la sua semplicità di utilizzo rispetto ad altri linguaggi come il PHP.
Sotto alcuni punti di vista, soprattutto per lo scraping e operazioni di “request” è molto più veloce rispetto al PHP, almeno questo è quello che ho potuto constatare nei miei test.
import requests
def get_status_code(url):
try:
richiesta = requests.get(url)
print ("Processato " + url)
if len(r.history) > 0:
catena = ""
code = r.history[0].status_code
url_finale = richiesta.url
for resp in richiesta.history:
catena += resp.url + " | "
return str(code) + '\t' + str(len(richiesta.history)) + '\t' + catena + '\t' + url_finale + '\t'
else:
return str(richiesta.status_code) + '\t\t\t\t'
except requests.ConnectionError:
print("Errore: non sono riuscito a connettermi.")
return '0\t\t\t\t'
input_file = 'urls.txt'
output_file = 'output.txt'
with open(output_file, 'w') as o_file:
o_file.write('URL\tStato\tNumero di Redirect\tCatena Redirect\tURL Finale\t\n')
f = open(input_file, "r")
lines = f.read().splitlines()
for line in lines:
code = get_status_code(line)
o_file.write(line + "\t" + str(code) + "\t\n")
f.close()
Andiamo ad analizzare il codice, blocco per blocco.
Abbiamo bisogno delle seguenti librerie
import requests
Se non hai la libreria installata, puoi farlo tramite il comando
pip install requests
In questa parte del codice andiamo a delineare la funzione che verrà lanciata nel main del nostro script in Python.
def get_status_code(url):
try:
richiesta = requests.get(url)
print ("Processato " + url)
if len(richiesta.history) > 0:
catena = ""
code = richiesta.history[0].status_code
url_finale = richiesta.url
for resp in richiesta.history:
catena += resp.url + " | "
return str(code) + '\t' + str(len(richiesta.history)) + '\t' + catena + '\t' + url_finale + '\t'
else:
return str(richiesta.status_code) + '\t\t\t\t'
except requests.ConnectionError:
print("Errore: non sono riuscito a connettermi.")
return '0\t\t\t\t'
Quello che andiamo a fare è molto semplice. Sfruttando la libreria requests analizziamo l’URL che abbiamo tra i parametri della funzione ed il risultato finale che faremo tornare sarà una stringa contenete tutte le informazioni di quel singolo URL, se ci sono delle catene di redirect o lo stato dell’URL (se raggiungibile o se restituisce qualche altro status code).
Poi andiamo ad istanziare le variabili per il file di input e quello di output.
input_file = 'urls.txt'
output_file = 'output.txt'
Infine andiamo a scrivere il codice che andrà ad aprire il nostro file e analizzerà riga per riga, quindi URL per URL.
with open(output_file, 'w') as o_file:
o_file.write('URL\tStato\tNumero di Redirect\tCatena Redirect\tURL Finale\t\n')
f = open(input_file, "r")
lines = f.read().splitlines()
for line in lines:
code = get_status_code(line)
o_file.write(line + "\t" + str(code) + "\t\n")
f.close()
Alla fine nella nostra directory avremo un file “ouput.txt” che conterrà tutte le informazioni della nostra analisi.
Semplice e veloce. Senza troppi giri di parole.
Buona SEO 🙂
Michele.
Pagine Utili
Informazioni
© Copyright 2022 MicheleSabatini.it · Tutti i diritti riservati · Sviluppato da Sabatini Michele con UIKit e YooTheme PRO - Progetti
Lascia un commento