Python 3中urlparse模块已移至urllib.parse。使用from urllib.parse import urlparse可解析URL结构,拆分协议、域名、路径、参数等;通过parsed.scheme、parsed.netloc等属性获取各部分;配合parse_qs、parse_qsl解析查询字符串;用urlunparse重新组合URL,适用于爬虫与API开发。

Python中的urlparse模块在Python 3中已经整合到urllib.parse模块中,不再作为独立模块存在。如果你使用的是Python 3,需要通过from urllib.parse import urlparse来使用。
1. 解析URL的基本结构
使用urlparse()可以将一个完整的URL拆分成多个组成部分,比如协议、域名、路径、参数等。
from urllib.parse import urlparseurl = "https://www.php.cn/link/814411c7a909ca15fc65a67b585ddd4d" parsed = urlparse(url) print(parsed)
输出结果为:SchemeResult(scheme='https', netloc='www.example.com:8080', path='/path/to/page', params='', query='name=value&key=123', fragment='section')
各部分含义如下:
立即学习“Python免费学习笔记(深入)”;
本文档主要讲述的是Python之模块学习;python是由一系列的模块组成的,每个模块就是一个py为后缀的文件,同时模块也是一个命名空间,从而避免了变量名称冲突的问题。模块我们就可以理解为lib库,如果需要使用某个模块中的函数或对象,则要导入这个模块才可以使用,除了系统默认的模块(内置函数)不需要导入外。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
- scheme:协议(如 http, https)
- netloc:网络位置,通常是域名和端口
- path:请求路径
- query:查询参数(?后面的部分)
- fragment:锚点(#后面的部分)
2. 获取URL的某个具体部分
你可以直接访问解析后的属性来获取所需信息。
print(parsed.scheme) # 输出: https print(parsed.netloc) # 输出: www.example.com:8080 print(parsed.path) # 输出: /path/to/page print(parsed.query) # 输出: name=value&key=123 print(parsed.fragment) # 输出: section
3. 处理查询参数(query)
urlparse只负责拆分URL,若要解析查询字符串,还需配合parse_qs或parse_qsl。
from urllib.parse import parse_qs, parse_qslquery = parsed.query params = parse_qs(query) print(params) # 输出: {'name': ['value'], 'key': ['123']}
如果想得到列表形式的键值对
params_list = parse_qsl(query) print(params_list) # 输出: [('name', 'value'), ('key', '123')]
4. 重新组合URL
使用urlunparse()可以把解析后的结构重新拼接成URL。
from urllib.parse import urlunparsenew_url = urlunparse(( parsed.scheme, parsed.netloc, parsed.path, '', # params(一般为空) parsed.query, parsed.fragment )) print(new_url) # 输出原URL
基本上就这些。掌握urlparse能帮你轻松处理网页链接的分析和构造,尤其在爬虫、API调用或路由解析时非常实用。注意别忘了导入路径是urllib.parse。










