1

[是的,标题没有错字!]

在 python 中,我需要一些可以解析 URL 的东西。我不敢相信一些标准还不存在。由于 URL 是在配置中设置的,因此我想确保它不是垃圾。

有 urlparse.urlparse,但它只解析“有效的 URL”(一些无效的 URL 有时会引发未记录的 ValueError)

例如

>>> import urlparse
>>> urlparse.urlparse('http://aa :: aa ! aa:11.com:aa').netloc
'aa :: aa ! aa:11.com:aa'

显示 urlparse 如何解析我认为无效的 URL。

4

1 回答 1

2

URL 解析和 URL 验证实际上是不同的任务。

urlparse.urlparsere进行解析,验证通常使用正则表达式机器( Python中的内置模块)进行。

下面是来自 Django 框架的 URL 验证示例:

regex = re.compile(
    r'^(?:http|ftp)s?://' # http:// or https://
    r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' #domain...
    r'localhost|' #localhost...
    r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip
    r'(?::\d+)?' # optional port
    r'(?:/?|[/?]\S+)$', re.IGNORECASE)
于 2012-08-15T10:32:58.743 回答