Python URL 解码

Vaibhhav Khetarpal 2023年10月10日
  1. 在 Python 中使用 urllib.parse.unquote() 函数解码 URL
  2. 在 Python 中使用 urllib.parse.unquote_plus() 函数解码 URL
  3. 在 Python 中使用 requests 模块解码 URL
Python URL 解码

在处理添加了路径参数或查询字符串的 API 时,URL 编码是必不可少的。路径参数和查询字符串需要在 URL 中正确编码以确保安全。

此外,URL 编码还可以用于准备提交数据。但是,程序员很难理解这些编码数据,这就是为什么需要对其进行解码的原因。

本教程演示了在 Python 中解码 URL 的不同方法。

在处理 HTML 表单时,它们默认使用 application/x-www-form-urlencoded 内容类型来发送参数。从这些表单接收到的参数必须首先被解码才能在 Python 中使用。

在 Python 中使用 urllib.parse.unquote() 函数解码 URL

urllib.parse.unquote() 函数用于透明有效地将给定字符串从百分比编码转换为 UTF-8 字节 数据,然后进一步将其转换为纯文本。

urllib.parse.unquote() 函数将 %x 转义序列替换为其单个字符等效项。当给定对象是 bytestr 对象时,此函数起作用。

要在你的 python 代码中使用这个函数,你首先要导入 urllib 库。这个包提供了几个库和函数,使在 Python 中使用 URL 变得容易。

以下代码使用 urllib.parse.unquote() 函数在 Python 中解码 URL。

import urllib.parse

url = "delftstack.com/code=%20HOW%20TO%20Articles"
x = urllib.parse.unquote(url)
print(x)

上面的代码提供了以下输出:

delftstack.com/code= HOW TO Articles

在 Python 中使用 urllib.parse.unquote_plus() 函数解码 URL

它的工作原理类似于上述 urllib.parse.unquote() 函数,但进一步解释了显着差异。

HTML 表单在解码值时通常包含 + 符号。虽然 urllib.parse.unquote() 函数无法解码+ 符号,但 urllib.parse.unquote_plus() 函数通过替换所有+ 符号来解码包含+ 符号的 URL 带空格。

此函数仅在给定对象是 str 对象时有效。

以下代码使用 urllib.parse.unquote_plus() 函数在 Python 中解码 URL。

import urllib.parse

url = "delftstack.com/code=HOW%20TO+Articles"
x = urllib.parse.unquote_plus(url)
print(x)

上面的代码提供了以下输出:

delftstack.com/code=HOW TO Articles

在 Python 中使用 requests 模块解码 URL

Python 有一个简单且高效的 requests 库,可通过 Python 发送 HTTP 请求。requests 库也可以用来完成这项任务,因为这个库通常用于在 Python 中处理 HTML 表单。

urllib.parse.unquote() 函数非常相似,requests.utils.unquote() 函数在解码 URL 时也不会过滤 + 符号。

以下代码使用 requests 模块函数在 Python 中解码 URL。

import requests

url = "delftstack.com/code=%20HOW%20TO%20Articles"
print(requests.utils.unquote(url))

上面的代码提供了以下输出:

delftstack.com/code= HOW TO Articles
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相关文章 - Python URL