您可以使用
urlparse.urlparse功能和ParseResult._replace方法:
>>> import urlparse
>>> parsed = urlparse.urlparse("https://www.google.dk:80/barbaz")
>>> replaced = parsed._replace(netloc="www.foo.dk:80")
>>> print replaced
ParseResult(scheme='https', netloc='www.foo.dk:80', path='/barbaz', params='', query='', fragment='')
ParseResult是namedtuple的子类,而_replace是一个namedtuple方法:
returns a new instance of the named tuple replacing specified fields
with new values
更新:
由于@ 2rs2ts在注释中说netloc属性包含一个端口号。
好消息:ParseResult具有主机名和端口属性。
坏消息:hostname和port不是namedtuple的成员,它们是动态属性,你不能做parsed._replace(hostname =“www.foo.dk”)。它会抛出一个异常。
parsed._replace(netloc="{}:{}".format(parsed.hostname, parsed.port))