在网址中间添加一个字符串

时间:2016-09-21 13:20:02

标签: python string url

这可能是一个简单的问题,但我无法解决。

我有一个网址:enum

我想在网址之间添加"www.example.com/links",使其成为:

/skip_session/id=%s/

有人可以帮助我吗?

我尝试使用

www.example.com/skip_session/id=%s/links

但是它会出错

2 个答案:

答案 0 :(得分:2)

由于你想在URL的路径部分前缀一个字符串,你可以使用urllib.parse module (Python 2中的urlparse)将URL分成第一部分:

try:
    # Python 3
    from urllib.parse import urlparse
except ImportError:
    # Python 2
    from urlparse import urlparse

def insert_path_prefix(url, prefix):
    parts = urlparse(url)
    updated = parts._replace(path=prefix + parts.path)
    return updated.geturl()

url = insert_path_prefix(url, '/skip_session/id=%s')

考虑到这确实需要您的网址正确形成(至少以//开头,最好使用完整格式的方案,如http://),以便解析正确选择主机名:

>>> insert_path_prefix('http://www.example.com/links', '/skip_session/id=%s')
'http://www.example.com/skip_session/id=%s/links'

如果您的网址在开头缺少//部分,请先添加一个。

答案 1 :(得分:0)

您可以使用字符串替换或字符串rsplit来执行任务

url_string = "www.example.com/links"
parsed_url = url_string.rsplit("/", 1)
new_url = "/skip_session/id=%s/".join(parsed_url)

或者这个:

url_string = "www.example.com/links"
new_url = url_string.replace("/links", "/skip_session/id=%s/links")