對python中使用requests模塊參數(shù)編碼的不同處理方法
python中使用requests模塊http請求時,發(fā)現(xiàn)中文參數(shù)不會自動的URL編碼,并且沒有找到類似urllib (python3)模塊中urllib.parse.quote("中文")手動URL編碼的方法.研究了半天發(fā)現(xiàn)requests模塊對中文參數(shù)有3種不同的處理方式.
一、requests模塊自動URL編碼參數(shù)
要使參數(shù)自動URL編碼,需要將請求參數(shù)以字典的形式定義,如下demo:
import requests proxy = {"http":"http://127.0.0.1:8080", "https":"http://127.0.0.1:8080"} def reTest(): url = "http://www.baidu.com" pdict = {"name":"中文測試"} requests.post(url = url,data = pdict,proxies = proxy)
效果如下圖,中文被URL編碼正確處理
二、參數(shù)原樣輸出,不需要編碼處理
使用dictionary定義參數(shù),發(fā)送請求時requests模塊會自動URL編碼處理參數(shù).但有些時候可能不需要編碼,要求參數(shù)原樣輸出,這個時候?qū)?shù)直接定義成字符串即可.
import requests proxy = {"http":"http://127.0.0.1:8080", "https":"http://127.0.0.1:8080"} def reTest(): url = "http://www.baidu.com" pstr1 = "name=中文".encode("utf-8") requests.post(url = url,data = pstr1, proxies = proxy)
注:參數(shù)需要utf-8編碼,否則會報錯Use body.encode('utf-8') if you want to send it encoded in UTF-8.
最后效果如下圖,參數(shù)原樣輸出:
三、參數(shù)使用format或%格式化,導致參數(shù)str變成bytes
有些時候直接定義的字符串參數(shù),其中有的參數(shù)是變量,需要format或%格式化控制變量.這個時候會發(fā)現(xiàn)格式化后的參數(shù)變成了bytes.
import requests proxy = {"http":"http://127.0.0.1:8080", "https":"http://127.0.0.1:8080"} def reTest(): url = "http://www.baidu.com" pstr2 = "name={0}".format("中文".encode("utf-8")) requests.post(url = url,data = pstr2, proxies = proxy)
參數(shù)變成了bytes
在該種請求下:
1. 如果參數(shù)需要URL編碼.當參數(shù)少的時候可以使用dict定義.如果參數(shù)太多,dict比較麻煩,可以針對參數(shù)使用urllib.parse.quote("中文")手動encode成URL編碼.
2. 如果中文參數(shù)需要原樣輸出.將參數(shù)格式化完成后再編碼即可.pstr2 = "name={0}".format("中文").encode("utf-8")
以上這篇對python中使用requests模塊參數(shù)編碼的不同處理方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- python編程之requests在網(wǎng)絡請求中添加cookies參數(shù)方法詳解
- 淺談python requests 的put, post 請求參數(shù)的問題
- python requests包的request()函數(shù)中的參數(shù)-params和data的區(qū)別介紹
- 使用python將請求的requests headers參數(shù)格式化方法
- Python requests.post方法中data與json參數(shù)區(qū)別詳解
- 使用Python爬蟲庫requests發(fā)送請求、傳遞URL參數(shù)、定制headers
- python requests 庫請求帶有文件參數(shù)的接口實例
- 解決python3 requests headers參數(shù)不能有中文的問題
- 詳解python requests中的post請求的參數(shù)問題
- Python requests庫參數(shù)提交的注意事項總結(jié)
相關文章
Python基于隨機采樣一至性實現(xiàn)擬合橢圓(優(yōu)化版)
這篇文章主要對上一版的Python基于隨機采樣一至性實現(xiàn)擬合橢圓的優(yōu)化,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的可以了解一下2022-11-11Python利用imshow制作自定義漸變填充柱狀圖(colorbar)
這篇文章主要介紹了Python利用imshow制作自定義漸變填充柱狀圖(colorbar),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12python中常見的幾種音頻數(shù)據(jù)讀取、保存方式總結(jié)
Python是一種非常適合進行音頻處理和音頻分析的語言,因為它有許多強大的庫可以使用,下面這篇文章主要給大家介紹了關于python中常見的幾種音頻數(shù)據(jù)讀取、保存方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-06-06python使用requests.post方法傳遞form-data類型的Excel數(shù)據(jù)的示例代碼
這篇文章介紹了python使用requests.post方法傳遞form-data類型的Excel數(shù)據(jù)的示例代碼,某些post接口,需要發(fā)送multipart/form-data類型的數(shù)據(jù),如何使用python requests來模擬這種類型的請求發(fā)送呢?補充講解了python使用requests post請求發(fā)送form-data類型數(shù)據(jù),一起看看吧2024-01-01