urllib.parse库对URL的操作

​ 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&param2=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&param2=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&param2=value2
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acmakb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值