Python 3中修改URL参数的正确方法

Owen
Owen
发布时间:2026-10-13 | 2人浏览过
原创

本文介绍在Python 3.5及以上版本中,如何利用urllib.parse模块修改URL查询参数。通过urlparse解析URL,使用parse_qs处理查询字符串,修改字典后通过urlencode重新编码,最后用urlunparse拼接完整URL。示例展示了添加、删除和修改参数的具体操作。

在Python 3.5环境中,处理URL参数的方式与Python 2.7或Python 3.4不同,主要依赖于urllib.parse模块。以下代码演示了具体的操作流程:首先导入parse模块,定义目标URL为'http://www.baidu.com/s?wd=codeif.com&spt=1'。接着,使用parse.urlparse将URL分解为元组,并转换为列表bits,此时bits包含['http', 'www.baidu.com', '/s', '', 'wd=codeif.com&spt=1', '']。通过parse.parse_qs解析bits[4](即查询字符串),得到字典qs,其内容为{'wd': ['codeif.com'], 'spt': ['1']}。随后对qs进行修改:将'wd'的值更新为['sina','@www'],添加新键'pg'值为[8],并删除'spt'键。此时qs变为{'pg': [8], 'wd': ['sina', '@www']}。利用parse.urlencode(qs, True)将修改后的查询字典重新编码为字符串,并赋值给bits[4],此时bits显示为['http', 'www.baidu.com', '/s', '', 'pg=8&wd=minicn&wd=%40www', '']。最后,通过parse.urlunparse(bits)重新组合URL,得到最终结果'http://www.baidu.com/s?pg=8&wd=minicn&wd=%40www'。

>>> from urllib import parse
>>> url = 'http://www.baidu.com/s?wd=codeif.com&spt=1'
>>> bits = list(parse.urlparse(url))
>>> bits
['http', 'www.baidu.com', '/s', '', 'wd=codeif.com&spt=1', '']
>>> qs = parse.parse_qs(bits[4])
>>> qs
{'wd': ['codeif.com'], 'spt': ['1']}
>>> qs['wd'] = ['sina','@www']
>>> qs['pg'] = [8]
>>> del qs['spt']
>>> qs
{'pg': [8], 'wd': ['sina', '@www']}
>>> bits[4] = parse.urlencode(qs, True)
>>> bits
['http', 'www.baidu.com', '/s', '', 'pg=8&wd=minicn&wd=%40www', '']
>>> url = parse.urlunparse(bits)
>>> url
'http://www.baidu.com/s?pg=8&wd=minicn&wd=%40www'
>>> 

以上就是在Python中修改URL参数的完整方法,希望能为读者提供有效的参考。欢迎继续支持本站获取更多技术内容。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表