python中urlparse模块怎么用?

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 urlparse

url = "https://www./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')

各部分含义如下:

  • 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_qsparse_qsl

from urllib.parse import parse_qs, parse_qsl

query = 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 urlunparse

new_url = urlunparse(( parsed.scheme, parsed.netloc, parsed.path, '', # params(一般为空) parsed.query, parsed.fragment )) print(new_url) # 输出原URL

基本上就这些。掌握urlparse能帮你轻松处理网页链接的分析和构造,尤其在爬虫、API调用或路由解析时非常实用。注意别忘了导入路径是urllib.parse