詳解python requests中的post請求的參數(shù)問題
問題:最新在爬取某站點(diǎn)的時(shí)候,發(fā)現(xiàn)在post請求當(dāng)中,參數(shù)構(gòu)造正確卻獲取不到數(shù)據(jù),索性將post的參數(shù)urlencode之后放到post請求的url后面變成get請求,結(jié)果成功獲取到數(shù)據(jù),對此展開疑問。
1.http請求中Form Data和Request Playload的區(qū)別:
Ajax post請求中常用的兩種參數(shù)形式:form data 和 request payload
get請求的時(shí)候,我們的參數(shù)直接反映在url里面,為key1=value1&key2=value2形式,如果是post請求,那么表單參數(shù)是在請求體中,也是以key1=value1&key2=value2的形式在請求體中。通過chrome的開發(fā)者工具可以看到如下
a.Form Data類型:
這種情況有兩種處理方式,一個(gè)是把這個(gè)post請求變成get請求,即把請求參數(shù)通過"?key1=value1&key2=value2"拼接在url當(dāng)中,然后以get方式請求就可以了:response = requests.get(url,headers=headers),其中url為拼接的url
另一種是仍然用post請求,將參數(shù)放在data中:response = requests.post(url,headers=headers,data=data),其中url為post url.
注意上圖中紅圈內(nèi)的內(nèi)容,這里請求頭中的Content-Type為application/x-www-form-urlencoded,點(diǎn)擊Form Data旁邊的view source,變成了key1=value1&key2=value2形式,如下圖,這時(shí)你可以將這部分內(nèi)容加到post的Request URL后面使它變成一個(gè)get請求,就可以獲取到數(shù)據(jù)了,
b.Request Payload類型
同樣在chrome瀏覽器開發(fā)者工具中可以看到它們不同的地方,Content-Type為application/json,表明需要傳的是一個(gè)json類型的對象,點(diǎn)擊view source,如下圖
自動(dòng)變成了json類型,這時(shí)必須發(fā)post請求,將這json對象傳入才可獲取數(shù)據(jù)。形如:
response = requests.post(url,json=data,headers=headers)
相比普通的post,這個(gè)post參數(shù)中的data一定要序列化才行。
到此這篇關(guān)于詳解python requests中的post請求的參數(shù)問題的文章就介紹到這了,更多相關(guān)python requests post請求參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用Python requests庫發(fā)送JSON數(shù)據(jù)的POST請求步驟
- python如何使用requests提交post請求并上傳文件(multipart/form-data)
- python中Requests發(fā)送json格式的post請求方法
- python?requests.post請求404問題及解決方法
- Python接口自動(dòng)化之淺析requests模塊post請求
- python爬蟲使用requests發(fā)送post請求示例詳解
- python利用requests庫模擬post請求時(shí)json的使用教程
- Python中Requests POST請求解讀
相關(guān)文章
Python?ArcPy實(shí)現(xiàn)批量計(jì)算多時(shí)相遙感影像的各項(xiàng)元平均值
這篇文章主要為大家詳細(xì)介紹了如何基于Python中ArcPy模塊,實(shí)現(xiàn)對大量長時(shí)間序列柵格遙感影像文件的每一個(gè)像元進(jìn)行多時(shí)序平均值的求取,感興趣的可以了解一下2023-04-04Python實(shí)現(xiàn)光速定位并提取兩個(gè)文件的不同之處
如果你經(jīng)常與Excel或Word打交道,那么從兩份表格/文檔中找到不一樣的元素是一件讓人很頭疼的工作。本文就將以兩份真實(shí)的Excel/Word文件為例,講解如何使用Python光速對比并提取文件中的不同之處2022-08-08python實(shí)現(xiàn)簡易圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡易圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03python實(shí)現(xiàn)感知機(jī)線性分類模型示例代碼
這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)感知機(jī)線性分類模型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06python中main函數(shù)(主函數(shù))相關(guān)應(yīng)用例子
這篇文章主要介紹了python中main函數(shù)(主函數(shù))相關(guān)應(yīng)用,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05Django--權(quán)限Permissions的例子
今天小編就為大家分享一篇Django--權(quán)限Permissions的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08