Python URL 解碼

Vaibhhav Khetarpal 2023年1月30日 2022年5月18日
  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