濮阳杆衣贸易有限公司

主頁 > 知識庫 > Python之進行URL編碼案例講解

Python之進行URL編碼案例講解

熱門標簽:宿州電話機器人哪家好 旅游廁所地圖標注怎么弄 百應(yīng)電話機器人總部 西青語音電銷機器人哪家好 電梯新時達系統(tǒng)外呼顯示e 南昌地圖標注 成都呼叫中心外呼系統(tǒng)哪家強 地圖標注與注銷 無錫智能外呼系統(tǒng)好用嗎

為什么要對URL進行encode

在寫網(wǎng)絡(luò)爬蟲時,發(fā)現(xiàn)提交表單中的中文字符都變成了TextBox1=%B8%C5%C2%CA%C2%DB這種樣子,觀察這是中文對應(yīng)的GB2312編碼,實際上是進行了GB2312編碼和urlencode。

那么為什么要對URL進行encode?

因為在標準的url規(guī)范中中文和很多的字符是不允許出現(xiàn)在url中的。為了字符編碼(gbk、utf-8)和特殊字符不出現(xiàn)在url中,url轉(zhuǎn)義是為了符合url的規(guī)范。

具體代碼

urlencode編碼:urllib中的quote方法

import urllib.parse
chinese_str = '中文'
# 先進行g(shù)b2312編碼
chinese_str = chinese_str.encode('gb2312')
# 輸出 b'\xd6\xd0\xce\xc4'
# 再進行urlencode編碼
chinese_str_url = urllib.parse.quote(chinese_str)
# 輸出 %D6%D0%CE%C4

urldecode解碼:urllib中的unquote方法

# 由于編碼問題會報錯,還未解決
urllib.parse.unquote('%D6%D0%CE%C4')
# :的url編碼為%3A,可輸出 http://www.baidu.com
urllib.parse.unquote('http%3A//www.baidu.com')

其它應(yīng)用

URL中%u開頭的字符

在網(wǎng)頁的表單參數(shù)中,還遇到過%u開頭的字符,得知是中文對應(yīng)的Unicode編碼值

以下代碼可以實現(xiàn)字符與unicode編碼值的轉(zhuǎn)換

str = '姓名'
# 獲得urlencode編碼
str = str.encode('unicode_escape')
print(str)
# 輸出 b'\\u59d3\\u540d'
str=str.decode('utf-8')
print(str)
# 輸出 \u59d3\u540d
str=str.encode('utf-8')
print(str)
# 輸出 b'\\u59d3\\u540d'
str=str.decode('unicode_escape')
print(str)
# 輸出 姓名

hidden隱藏域?qū)ο笞鳛楸韱螀?shù)

在爬取ASP.NET平臺的網(wǎng)站信息時,有VIEWSTATE、EVENTVALIDATION這樣的hidden隱藏域?qū)ο?,作為表單參?shù)發(fā)送post請求,所以需要從網(wǎng)頁源代碼中獲取。

但post請求中的參數(shù)值是URL編碼值,而網(wǎng)頁源碼中獲取到的是URL解碼值,所以需要進行urlencode編碼。

相關(guān)代碼

# 網(wǎng)頁源碼上得到之后,需要urlencode編碼
hid['VIEWSTATE'] = urllib.parse.quote(soup.find(id="__VIEWSTATE")['value'])

相關(guān)工具

谷歌瀏覽器的開發(fā)者工具中可以查看參數(shù)的urlencode和decode值

在線URL編碼/解碼工具

可選擇編碼格式為UTF-8或GB2312

漢字字符集編碼查詢

可查漢字的GB2312等中文編碼和Unicode編碼

參考鏈接

python中的urlencode和urldecode(代碼)

到此這篇關(guān)于Python之進行URL編碼案例講解的文章就介紹到這了,更多相關(guān)Python之進行URL編碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解python中文編碼問題
  • python基礎(chǔ)之編碼規(guī)范總結(jié)
  • Python3 json模塊之編碼解碼方法講解
  • 解決python3 中的np.load編碼問題
  • python 編碼中為什么要寫類型注解?
  • python源文件的字符編碼知識點詳解
  • Python新建項目自動添加介紹和utf-8編碼的方法
  • python中字符串的編碼與解碼詳析

標簽:濰坊 許昌 渭南 七臺河 辛集 贛州 西安 雅安

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Python之進行URL編碼案例講解》,本文關(guān)鍵詞  Python,之,進行,URL,編碼,案例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python之進行URL編碼案例講解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python之進行URL編碼案例講解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    和田县| 丰宁| 临武县| 瓮安县| 永和县| 建平县| 宁城县| 定结县| 抚顺市| 汤原县| 凤庆县| 大余县| 平乡县| 丹巴县| 阜城县| 内乡县| 仪陇县| 天镇县| 南宫市| 竹溪县| 剑阁县| 奈曼旗| 棋牌| 绥滨县| 文水县| 石林| 建始县| 温州市| 滦平县| 额敏县| 西吉县| 横峰县| 金昌市| 依安县| 南部县| 庄河市| 剑川县| 承德市| 临沂市| 泸西县| 聂拉木县|