Python2 中urllib模块提供了一些函数操作URL本身。
一、quote(string[, safe])
它返回一个字符串,其中所有的特殊字符都已被对URL友好的字符所代替(就像用%7E代替了~)
举例:假设接口测试中,要向一个url发送一串json格式的报文,服务器要接收时会对json数据进行解析,如果报文中有%@*?等特殊字符,很有可能服务器接收并解析后就不合法 出现空格等,我们可以使用这个函数将json数据编码。
它对应的解码是unquote(string)。(结果跟网页版的urlencode是一样的)。
二、quote_plus(string[,safe])。
功能和quote差不多,但用+代替空格。对应的解码函数是unquote_plus(string)
三、urlencode(query[,doseq])
把映射(比如字典)或者包含两个元素的元组的序列——(key,value)这种形式——转换成URL格式编码的字符串,这样的字符串可以在CGI查询中使用。
举例:当url地址含有中文,或者参数有中文的时候,url作为参数传递,需要处理一下。
>> data ={'No': '01', 'Name': '燕子'}
>> print(urlencode(data))
结果:
>>Name=%E7%87%95%E5%AD%90&No=01
注意 它对应的解码 是没有decode函数的,对应的还是unquote(string)
>>unquote("%E7%87%95%E5%AD%90")
结果 >>燕子
(python3中,以上介绍的函数在urllib.parse模块中)