解析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)

运行结果为:

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)

运行结果为:

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)

运行结果为:

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)

运行结果为:

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