urlparse
(py2,py3)模块是解析(并验证)URL的一种简单方法。
正则表达式是太多的工作。
没有“验证”方法,因为几乎所有内容都是有效的URL。有一些标点符号规则将其拆分。没有标点符号,您仍然有一个有效的URL。
仔细检查RFC,看看是否可以构造“无效” URL。规则非常灵活。
例如:::::
,一个有效的URL。路径是":::::"
。漂亮的文件名,但是有效的文件名。
另外,/////
也是有效的网址。netloc(“主机名”)为""
。路径是"///"
。再次,愚蠢。也有效。此URL规范化为"///"
等效的URL 。
类似的东西"bad://///worse/////"
是完全有效的。哑巴但有效。
。解析它,然后查看各个部分,看看它们是否在某种程度上令人不快。
您是否希望方案始终为“ http”?您是否希望netloc始终为“www.somename.somedomain”?您是否要让路径看起来像Unix?还是像窗户?是否要删除查询字符串?还是保留它?
这些不是RFC指定的验证。这些是您的应用程序独有的验证。