如果http不以http开头,该如何在http之前添加网址?


问题内容

我的网址格式为:

google.com
www.google.com
http://google.com
http://www.google.com

我想将所有类型的链接转换为统一格式,从 http://

http://google.com

如何http://使用Python前置URL ?


问题答案:

Python确实具有内置函数来正确对待它,例如

p = urlparse.urlparse(my_url, 'http')
netloc = p.netloc or p.path
path = p.path if p.netloc else ''
if not netloc.startswith('www.'):
    netloc = 'www.' + netloc

p = urlparse.ParseResult('http', netloc, path, *p[3:])
print(p.geturl())

如果要删除(或添加)www零件,则必须.netloc在调用之前编辑结果对象的字段.geturl()

因为ParseResult是一个namedtuple,所以您不能就地编辑它,而必须创建一个新对象。

PS:

对于Python3,应该是 urllib.parse.urlparse