[是的,标题没有错别字!]
在 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。
最佳答案
URL解析和URL验证实际上是不同的任务。
urlparse.urlparse
进行解析,验证通常使用正则表达式机器(Python 中内置的 re
模块)进行。
以下是 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)
关于python - python 中无效的 URL 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11967733/