urllib.parse 是 Python 中的一个标准库,用于处理 URL(统一资源定位符)的解析和操作。它提供了一系列函数和类,用于对 URL 进行解析、拼接、编码和解码等操作。下面是一些 urllib.parse 库的常用用法:
解析URL:
解析 URL:可以使用 urllib.parse.urlparse() 函数来解析 URL,将其分解为各个组成部分,如协议、主机、路径等。
from urllib.parse import urlparse
url = "https://www.example.com/path?param1=value1¶m2=value2"
parsed_url = urlparse(url)
print(parsed_url.scheme) # 输出: https
print(parsed_url.netloc) # 输出: www.example.com
print(parsed_url.path) # 输出: /path
print(parsed_url.query) # 输出: param1=value1¶m2=value2
拼接 URL
可以使用 urllib.parse.urljoin() 函数将相对 URL 或者路径拼接到基础 URL 上,生成完整的 URL。
base_url = "https://www.example.com"
relative_url = "path/page.html"
full_url = urljoin(base_url, relative_url)
print(full_url) # 输出: https://www.example.com/path/page.html
编码和解码 URL
可以使用 urllib.parse.quote() 和 urllib.parse.unquote() 函数进行 URL 的编码和解码。
from urllib.parse import quote, unquote
original_url = "https://www.example.com/path with spaces"
encoded_url = quote(original_url)
print(encoded_url) # 输出: https%3A//www.example.com/path%20with%20spaces
decoded_url = unquote(encoded_url)
print(decoded_url) # 输出: https://www.example.com/path with spaces```
构建请求参数
可以使用 urllib.parse.urlencode() 函数构建 URL 的查询参数部分。
from urllib.parse import urlencode, quote, unquote
url = "https://www.newrank.cn/xdnphb/main/v1/day/rank"
data = {
"end": "2022-09-23",
"rank_name": "百科",
"rank_name_group": "生活",
"start": "2022-09-23",
"nonce": "2c2c2fd1b",
}
encoded_data = urlencode(data)
decoded_data = unquote(encoded_data)
print(encoded_data) # end=2022-09-23&rank_name=%E7%99%BE%E7%A7%91&rank_name_group=%E7%94%9F%E6%B4%BB&start=2022-09-23&nonce=2c2c2fd1b
print(decoded_data) # end=2022-09-23&rank_name=百科&rank_name_group=生活&start=2022-09-23&nonce=2c2c2fd1b
from urllib.parse import urlencode
params = {
'param1': 'value1',
'param2': 'value2'
}
encoded_params = urlencode(params)
print(encoded_params) # 输出: param1=value1¶m2=value2