我正在寻找一种在Python中规范化URL的库函数,即删除路径中的"./"或"../"部分,添加默认端口或转义特殊字符等。结果应该是一个字符串,两个指向相同网页的URL应该返回相同的结果。例如,
我更喜欢Python 3,并已查看
http://google.com
和http://google.com:80/a/../
应返回相同的结果。我更喜欢Python 3,并已查看
urllib
模块。它提供了将URL拆分为各个部分的函数,但没有用于规范化的函数。Java有URI.normalize()
函数可以执行类似的操作(虽然它不考虑默认端口80等于未给出端口),但是在Python中是否有类似的函数呢?
http://google.com/
这样的资源与http://google.com:80/a/../
不同。也就是说,如果/a
不存在,那么第二个路径将失败。通过“规范化”它,你会失去这种特殊情况,并在开始时使用无效的 URI 得到一个有效的 URI... - Alexis Wilke