Tôi đang tìm một chức năng thư viện để chuẩn hóa một URL bằng Python, để loại bỏ các phần "./" hoặc "../" trong đường dẫn hoặc thêm cổng mặc định hoặc thoát các ký tự đặc biệt, v.v. Kết quả phải là một chuỗi duy nhất cho hai URL trỏ đến cùng một trang web. Ví dụ: http://google.com
và http://google.com:80/a/../
sẽ trả về cùng một kết quả.Canonicalize/bình thường hóa URL?
Tôi thích Python 3 và đã xem qua mô-đun urllib
. Nó cung cấp các chức năng để phân tách các URL nhưng không có gì để chuẩn hóa chúng. Java có chức năng URI.normalize()
thực hiện một điều tương tự (mặc dù nó không xem xét cổng mặc định 80 bằng không có cổng đã cho), nhưng có điều gì đó như thế này là python không?
Là một lưu ý phụ, một nguồn tài nguyên như 'http: // google.com /' là không giống nhau hơn 'http: // google .com: 80/a /../ '. Nghĩa là, nếu '/ a' không tồn tại, thì đường thứ hai sẽ thất bại. Bởi "canonicalizing" nó, bạn bị mất trường hợp đặc biệt và kết thúc với một URI hợp lệ khi bạn bắt đầu với một không hợp lệ ... –