def replace_qs_param(url, params):
""" Add GET params to provided URL being aware of existing.
from: http://stackoverflow.com/a/25580545
:param url: string of target URL
:param params: dict containing requested params to be added
:return: string with updated URL
"""
url = urllib.unquote(url)
parsed_url = urlparse(url)
get_args = parsed_url.query
# Converting URL arguments to dict and update
parsed_get_args = dict(parse_qsl(get_args))
parsed_get_args.update(params)
# Converting URL argument to proper query string
encoded_get_args = urllib.urlencode(parsed_get_args, doseq=True)
new_url = ParseResult(
parsed_url.scheme, parsed_url.netloc, parsed_url.path,
parsed_url.params, encoded_get_args, parsed_url.fragment
).geturl()
return new_url
评论列表
文章目录