当url地址含有中文,或者参数有中文的时候,把这样的url作为参数传递的时候,需要把一些中文甚至'/'做一下编码转换。
所以对于一些中文或者字符,url不识别,就需要我们进行转换。
python中的urlencode与urldecode
一、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)
结果是:
小张