将url与urlunparse相结合

Ben*_*Ben 6 python urlparse

我正在写一些东西来"清理"一个URL.在这种情况下,我所要做的就是返回一个伪造的方案,urlopen如果没有一个方法就行不通.但是,如果我用www.python.org它来测试它会返回http:///www.python.org.有没有人知道为什么额外的/,有没有办法在没有它的情况下返回?

def FixScheme(website):

   from urlparse import urlparse, urlunparse

   scheme, netloc, path, params, query, fragment = urlparse(website)

   if scheme == '':
       return urlunparse(('http', netloc, path, params, query, fragment))
   else:
       return website
Run Code Online (Sandbox Code Playgroud)

Ale*_*lli 9

问题是,在解析非常不完整的URL时www.python.org,您提供的字符串实际上被视为pathURL 的组成部分,其中netloc(网络位置)为空,以及方案.对于违约的方案,你可以第二个参数实际上传递schemeurlparse(简化你的逻辑),但简化版,帮助与"空netloc"的问题.所以,你需要一些逻辑情况下,如

if not netloc:
    netloc, path = path, ''
Run Code Online (Sandbox Code Playgroud)