我使用URL作为键,所以我需要它们是一致的和干净的.我需要一个python函数,它将获取一个URL并清理它,以便我可以从数据库中获取.例如,它将采取以下措施:
example.com
example.com/
http://example.com/
http://example.com
http://example.com?
http://example.com/?
http://example.com//
Run Code Online (Sandbox Code Playgroud)
并输出一个干净的一致版本:
http://example.com/
Run Code Online (Sandbox Code Playgroud)
我浏览了std libs和github,找不到这样的东西
更新
我找不到一个Python库来实现这里和RFC中讨论的所有内容:
http://en.wikipedia.org/wiki/URL_normalization
所以我现在正在写一个.这比我最初设想的要多得多.
看看urlparse.urlparse().我用它取得了很大的成功.
注意:这个答案来自2011年,特定于Python2.在Python3中,urlparse模块已被命名为urllib.parse.相应的Python3文档urllib.parse可以在这里找到:
https://docs.python.org/3/library/urllib.parse.html
这是在scrapy中完成的:
http://nullege.com/codes/search/scrapy.utils.url.canonicalize_url
通过应用以下过程规范化给定的URL:
- 首先按键,然后按值对查询参数进行排序
- 百分比编码路径和查询参数.使用UTF-8(RFC-3986)对非ASCII字符进行百分比编码
- 规范化所有空格(在查询参数中)'+'(加号)
- 规范化百分比编码案例(%2f - >%2F)
- 删除带有空值的查询参数(除非keep_blank_values为True)
- 删除片段(除非keep_fragments为True)
| 归档时间: |
|
| 查看次数: |
8786 次 |
| 最近记录: |