前言:url 中是不能出現一些特殊的符號的,有些符號有特殊的用途。比如以 get 方式提交數據的時候,會在 url 中添加 key=value 這樣的字符串,所以在 value 中是不允許有 '=',因此要對其進行編碼;與此同時服務器接收到這些參數的時候,要進行解碼,還原成原始的數據。這個時候,這些輔助方法會很有用:
-
urllib.quote(string[, safe]):對字符串進行編碼。參數 safe 指定了不需要編碼的字符;
-
urllib.unquote(string) :對字符串進行解碼;
-
urllib.quote_plus(string [ , safe ] ) :與 urllib.quote 類似,但這個方法用'+'來替換' ',而 quote 用' '來代替' '
-
urllib.unquote_plus(string ) :對字符串進行解碼;
-
urllib.urlencode(query[, doseq]):將dict或者包含兩個元素的元組列表轉換成url參數。例如 字典{'name': 'dark-bull', 'age': 200}將被轉換為"name=dark-bull&age=200"
-
urllib.pathname2url(path):將本地路徑轉換成 url 路徑;
-
urllib.url2pathname(path):將url路徑轉換成本地路徑;
編碼工作使用urllib的parse.urlencode()函數,幫我們將key:value這樣的鍵值對轉換成"key=value"這樣的字符串;
解碼工作可以使用urllib的parse.unquote()函數。(注意,不是urllib.request.urlencode() )
具體栗子可查看:https://www.cnblogs.com/yandashan666/p/12253674.html