爬蟲遇到url地址中文字轉碼問題
阿新 • • 發佈:2019-02-07
當url地址含有中文,或者引數有中文的時候,把這樣的url作為引數傳遞的時候,需要把一些中文甚至'/'做一下編碼轉換。
所以對於一些中文或者字元,url不識別,就需要我們進行轉換。
一、urlencode
urllib庫裡有一個urlencode函式,它可以把key-value鍵值對直接轉換成 我們想要的格式
舉個例子:
import urllib.parse
datas = {}
datas['name'] = '小張'
datas['age'] = '18?'
datas['level'] = 'Dd'
data = urllib.parse.urlencode(datas)
print(data)
結果如下:
name=%E5%B0%8F%E5%BC%A0&age=18%3F&level=Dd
urllib還有一個quote(),是直接對一個字串進行轉換
import urllib.parse
data = '小張'
data = urllib.parse.quote(data)
print(data)
結果為:
%E5%B0%8F%E5%BC%A0
二、urldecode
有些時候url地址上的中文字已經被轉碼,所以我們爬取多個相同連結時需要對其傳入的漢字進行轉換,在urllib中有個unquote()函式對其進行轉換
import urllib.parse
data = '%E5%B0%8F%E5%BC%A0'
data = urllib.parse.unquote(data)
print(data)
結果是:
小張