Python3爬蟲——關於URL中文轉碼的方法

在我們進行數據傳參訪問的時候,HTTP協議的參數通常以鍵值對的形式出現,多個參數之間用 &分隔,但是如果值是中文或者是其他特殊字符的話,就要對其進行轉碼,不然可能會產生歧義,我們接下來就來看下如何對中文進行轉碼:

from urllib import parse

str = '中國'

print(parse.quote(str))    # 對中文進行編碼
print(parse.unquote(parse.quote(str)))    # 進行解碼操作

# 輸出結果:
# %E4%B8%AD%E5%9B%BD
# 中國

之前也有講過,不同網站的編碼格式也是會有差別的,這時候我們就需要根據他們的編碼格式進行調整,先將文字轉換爲網站相同的編碼,然後再進行轉碼:

from urllib import parse

str = '中國'

print(str)
print(parse.quote(str.encode('gbk')))
print(parse.quote(str.encode('utf-8')))

# 輸出結果:
# 中國
# %D6%D0%B9%FA
# %E4%B8%AD%E5%9B%BD

那麼我們在編程的時候會經常看見encode和decode,他們之間分別代表什麼呢?

str = '中國'    # 我們需要進行編解碼的字符

str1 = str.encode('gbk')        # 我們設置編碼格式爲GBK
str2 = str.encode('utf-8')      # 設置編碼格式爲utf-8

print(str1)
print(str2)
# 如果這裏輸出str2.decode('gbk')就會報錯,因爲編碼格式不匹配
print(str2.decode('utf-8'))    # 將字符解碼輸出

# 輸出結果:
# b'\xd6\xd0\xb9\xfa'
# b'\xe4\xb8\xad\xe5\x9b\xbd'
# 中國

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章