Sto cercando una funzione di libreria per normalizzare un URL in Python, ovvero rimuovere parti "./" o "../" nel percorso, o aggiungere una porta predefinita o caratteri speciali di escape e così via. Il risultato dovrebbe essere una stringa che è unica per due URL che puntano alla stessa pagina web. Ad esempio http://google.com
e http://google.com:80/a/../
restituiscono lo stesso risultato.Canonicalizzare/normalizzare un URL?
Preferirei Python 3 e ho già controllato il modulo urllib
. Offre funzioni per dividere gli URL ma nulla per canonicalizzarli. Java ha la funzione URI.normalize()
che fa una cosa simile (anche se non considera la porta predefinita 80 uguale a nessuna porta data), ma c'è qualcosa come questo è python?
Come nota a margine, una risorsa come 'http: // google.com /' non è la stessa di 'http: // google .it: 80/a /../ '. Cioè, se '/ a' non esiste, allora il secondo percorso fallirà. Per "canonicalizzare", perdi quel caso speciale e finisci con un URI valido quando hai iniziato con uno non valido ... –