溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

URL編碼解碼實例分析

發(fā)布時間:2022-02-25 10:36:56 來源:億速云 閱讀:162 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了URL編碼解碼實例分析的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇URL編碼解碼實例分析文章都會有所收獲,下面我們一起來看看吧。

案例

思路

很多情況出現(xiàn)亂碼的原因其實還是用戶(開發(fā)者)本身造成的。使用了錯誤的方式打開了一個文件,就會出現(xiàn)亂碼。比如說文本文件的UTF-8格式的文件被錯誤地使用GBK方式打開等。而上面的案例中實際上也是一種錯誤的打開方式(或者說,沒有完全打開)。實際上,看到上面的代碼我們第一反應(yīng)是應(yīng)該去查找這是什么代碼。根據(jù)小編的經(jīng)驗(沒有經(jīng)驗的也可以百度),這應(yīng)該是URL編碼,然后小編找了站長工具進行測試后也確定了該編碼方式是URL編碼。

什么是URL編碼?

URL編碼是一種特殊的編碼形式,因為最開始應(yīng)用于URL中所以得名URL編碼。我們知道URL中是不能出現(xiàn)中文還有其他非英文字符的(也可以理解為不能出現(xiàn)非ASCII碼表的字符),但我們又確實需要在URL中輸入一些非ASCII碼表字符(我們知道,GET方式傳參是將參數(shù)添加到URL后面的,如果不能在URL中輸入非ASCII字符,那么就意味著GET傳參不能實現(xiàn)其他文字的傳參),于是就出現(xiàn)了URL編碼的標準。URL編碼的方式是把非ASCII碼字符用%和可用的ASCII字符表示出來,這樣就能用這些ASCII字符去表示非ASCII字符了。

 小伙伴們會說,你看這地址欄不是也出現(xiàn)了中文了嗎?其實這是瀏覽器的優(yōu)化,為了讓你清楚這個鏈接,瀏覽器在地址欄會將URL編碼進行解碼,所以你看到的會是中文

如何解URL編碼

在前端開發(fā)中對于這種數(shù)據(jù)一般是用JavaScript編寫一個解編碼的程序去進行解編碼(現(xiàn)在有很多現(xiàn)成的解編碼的js代碼段),小型的數(shù)據(jù)我們可以去站長工具里面解編碼(這種方式通常用來驗證是否是URL編碼)。但是我們是在爬蟲爬取數(shù)據(jù)的時候需要對這些URL代碼進行解編碼,所以我們要用python的方式去解決。

在python中有一個自帶的urllib庫,我們知道這個庫的request模塊可以進行請求,parse模塊可以對html代碼進行解析。實際上它也可對URL編碼進行解編碼,以下是解編碼的代碼示例,各位小伙伴可以拿去做參考。

import requests
import urllib.parse

url = "http://kemok4.com/article"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'}
data = requests.get(url, headers)
data = data.text
data =urllib.parse.unquote(data)
print(data)

關(guān)于“URL編碼解碼實例分析”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“URL編碼解碼實例分析”知識都有一定的了解,大家如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

url
AI