Szukam funkcji bibliotecznej w celu normalizacji adresu URL w języku Python, czyli usunięcia części "./" lub "../" w ścieżce lub dodania portu domyślnego lub uniknięcia znaków specjalnych i tak dalej. Wynik powinien być łańcuchem unikatowym dla dwóch adresów URL wskazujących tę samą stronę internetową. Na przykład http://google.com
i http://google.com:80/a/../
zwrócą ten sam wynik.Czy można przekształcić/znormalizować adres URL?
Wolałbym Python 3 i już przejrzałem moduł urllib
. Oferuje funkcje podziału adresów URL, ale nie ma możliwości ich kanonizacji. Java ma funkcję URI.normalize()
, która robi podobną rzecz (chociaż nie uważa domyślnego portu 80 równego brakowi danego portu), ale czy jest coś takiego w python?
Na marginesie, zasobów, takich jak 'http: // google.com /' nie jest taka sama, niż 'http: // google .com: 80/a /../ '. Oznacza to, że jeśli '/ a' nie istnieje, to druga ścieżka zakończy się niepowodzeniem. Przez "kanonalizację" go, tracisz ten specjalny przypadek i kończy się na poprawnym identyfikatorze URI, gdy zaczynałeś od niepoprawnego ... –