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模塊中)
