如何使用Python将自定义参数添加到URL查询字符串?

我需要使用Python将自定义参数添加到URL查询字符串

示例:这是浏览器正在获取(URL)的URL:

/scr.cgi?q=1&ln=0

然后执行一些python命令,结果,我需要在浏览器中设置以下URL:

/scr.cgi?q=1&ln=0&SOMESTRING=1

有一些标准方法吗?

回答:

您可以使用urlsplit()urlunsplit()分解并重建URL,然后urlencode()在解析的查询字符串上使用:

from urllib import urlencode

from urlparse import parse_qs, urlsplit, urlunsplit

def set_query_parameter(url, param_name, param_value):

"""Given a URL, set or replace a query parameter and return the

modified URL.

>>> set_query_parameter('http://example.com?foo=bar&biz=baz', 'foo', 'stuff')

'http://example.com?foo=stuff&biz=baz'

"""

scheme, netloc, path, query_string, fragment = urlsplit(url)

query_params = parse_qs(query_string)

query_params[param_name] = [param_value]

new_query_string = urlencode(query_params, doseq=True)

return urlunsplit((scheme, netloc, path, new_query_string, fragment))

如下使用它:

>>> set_query_parameter("/scr.cgi?q=1&ln=0", "SOMESTRING", 1)

'/scr.cgi?q=1&ln=0&SOMESTRING=1'

以上是 如何使用Python将自定义参数添加到URL查询字符串? 的全部内容, 来源链接: utcz.com/qa/405090.html

回到顶部