欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python之進(jìn)行URL編碼案例講解

 更新時間:2021年08月09日 09:24:15   作者:曾記否?  
這篇文章主要介紹了Python之進(jìn)行URL編碼案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

為什么要對URL進(jìn)行encode

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

那么為什么要對URL進(jìn)行encode?

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

具體代碼

urlencode編碼:urllib中的quote方法

import urllib.parse
chinese_str = '中文'
# 先進(jìn)行g(shù)b2312編碼
chinese_str = chinese_str.encode('gb2312')
# 輸出 b'\xd6\xd0\xce\xc4'
# 再進(jìn)行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解碼值,所以需要進(jìn)行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之進(jìn)行URL編碼案例講解的文章就介紹到這了,更多相關(guān)Python之進(jìn)行URL編碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python連接mssql數(shù)據(jù)庫編碼問題解決方法

    Python連接mssql數(shù)據(jù)庫編碼問題解決方法

    這篇文章主要介紹了Python連接mssql數(shù)據(jù)庫編碼問題解決方法,本文方法同樣適用mysql、sqllite、mongodb等數(shù)據(jù)庫,需要的朋友可以參考下
    2015-01-01
  • Pycharm運行程序時,控制臺輸出PyDev?console:starting問題

    Pycharm運行程序時,控制臺輸出PyDev?console:starting問題

    Pycharm運行程序時,控制臺輸出PyDev?console:starting問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • python區(qū)塊鏈實現(xiàn)簡版網(wǎng)絡(luò)

    python區(qū)塊鏈實現(xiàn)簡版網(wǎng)絡(luò)

    這篇文章主要為大家介紹了python區(qū)塊鏈實現(xiàn)簡版網(wǎng)絡(luò)的詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python2.7無法使用pip的解決方法(安裝easy_install)

    python2.7無法使用pip的解決方法(安裝easy_install)

    下面小編就為大家分享一篇python2.7無法使用pip的解決方法(安裝easy_install),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python制作一個多功能音樂播放器

    Python制作一個多功能音樂播放器

    本文主要介紹了Python制作一個多功能音樂播放器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python如何使用27行代碼繪制星星圖

    Python如何使用27行代碼繪制星星圖

    這篇文章主要介紹了Python如何使用27行代碼繪制星星圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • 分享6個好用到爆的Pycharm插件

    分享6個好用到爆的Pycharm插件

    這篇文章主要介紹了分享6個好用到爆的Pycharm插件,在安裝上之后,我們的編程效率、工作效率都能夠得到極大地提升,下面分享的內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • python字符串定義的三種方式

    python字符串定義的三種方式

    在Python中,字符串是一個非常重要的數(shù)據(jù)類型,可用來存儲和操作文本數(shù)據(jù),本文主要介紹了python字符串定義的三種方式,具有一定的參考價值,感興趣的可以了解一下
    2023-05-05
  • Python+Redis實現(xiàn)布隆過濾器

    Python+Redis實現(xiàn)布隆過濾器

    布隆過濾器(Bloom Filter)是1970年由布隆提出的。它實際上是一個很長的二進(jìn)制向量和一系列隨機映射函數(shù)。這篇文章主要介紹了Python+Redis實現(xiàn)布隆過濾器,需要的朋友可以參考下
    2019-12-12
  • 數(shù)據(jù)挖掘之Apriori算法詳解和Python實現(xiàn)代碼分享

    數(shù)據(jù)挖掘之Apriori算法詳解和Python實現(xiàn)代碼分享

    這篇文章主要介紹了數(shù)據(jù)挖掘之Apriori算法詳解和Python實現(xiàn)代碼分享,本文先是對Apriori算法做了詳細(xì)介紹,然后給出了Python版實現(xiàn)代碼,需要的朋友可以參考下
    2014-11-11

最新評論