1. 程式人生 > >爬蟲遇到url地址中文字轉碼問題

爬蟲遇到url地址中文字轉碼問題

當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)

結果是:

小張