解析 url 字符串

urllib.parse 模块是 Python 标准库中用于解析和操作 URL 的模块。下面介绍一些 urllib.parse 常用的方法。

1. urlparse:用于解析 URL 字符串,返回一个具名元组,包含 6 个属性 scheme、netloc、path、params、query 和 fragment。下面是一个例子:


from urllib.parse import urlparse

url = "https://www.example.com:8080/path?query=string#fragment"
result = urlparse(url)
print(result)

Python

运行结果为:

ParseResult(scheme='https', netloc='www.example.com:8080', path='/path', params='', query='query=string', fragment='fragment')

拼接 URL 字符串

2. urlunparse:用于拼接 URL 字符串,接受一个具名元组作为参数,返回拼接后的 URL 字符串。下面是一个例子:


from urllib.parse import urlunparse

parts = ('https', 'www.example.com', '/path', '', 'query=string', 'fragment')
url = urlunparse(parts)
print(url)

Python

运行结果为:

https://www.example.com/path?query=string#fragment

编码和解码 URL 参数

3. urlencode:用于编码 URL 参数,接受一个字典或具名元组作为参数,返回编码后的 URL 参数字符串。下面是一个例子:


from urllib.parse import urlencode

params = {'key1': 'value1', 'key2': 'value2'}
encoded_params = urlencode(params)
print(encoded_params)

Python

运行结果为:

key1=value1&key2=value2

4. parse_qs:用于解码 URL 参数字符串,返回一个字典,包含解码后的参数。下面是一个例子:


from urllib.parse import parse_qs

params = 'key1=value1&key2=value2'
decoded_params = parse_qs(params)
print(decoded_params)

Python

运行结果为:

{'key1': ['value1'], 'key2': ['value2']}