【发布时间】:2011-07-12 20:36:45
【问题描述】:
我使用 URL 作为键,所以我需要它们保持一致和干净。我需要一个 python 函数来获取一个 URL 并清理它,以便我可以从数据库中获取。例如,它将采用以下内容:
example.com
example.com/
http://example.com/
http://example.com
http://example.com?
http://example.com/?
http://example.com//
并输出干净一致的版本:
http://example.com/
我浏览了 std 库和 GitHub,找不到类似的东西
更新
我找不到实现此处和 RFC 中讨论的所有内容的 Python 库:
http://en.wikipedia.org/wiki/URL_normalization
所以我现在正在写一个。这比我最初想象的要多得多。
【问题讨论】:
-
标准化的清理表单应该是
http://example.com/而不是http://example.com,没有路径组件的HTTP URL在技术上是不正确的。 -
你需要定义干净。这是否意味着绝对URL?还是规范网址?
-
我真正的意思是规范化,当我早上 5 点输入这个词时,我并没有真正想到这个词。 urlparse() 看起来像我想要的,当我今天早上阅读文档时,我没有注意到该函数的规范化方面。