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

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

本文介绍在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。