Python爬蟲:Request Payload和Form Data的簡單區(qū)別說明
Request Payload 和 Form Data 請求頭上的參數(shù)差別在于:
Content-Type
Form Data
Post表單請求
代碼示例
headers = { "Content-Type": "application/x-www-form-urlencoded" } requests.post(url, data=data, headers=headers) Request Payload
傳遞json數(shù)據(jù)
headers = { "Content-Type": "application/json" } requests.post(url, data=json.dumps(data), headers=headers)
Scrapy 的FormRequest只支持 Form Data 表單提交,源碼固定為前者
補充知識:如何傳遞Request PayLoad(請求負(fù)載)中的數(shù)據(jù)?
在做爬蟲的時候,在分析請求的過程,遇到參數(shù)長這樣的:
原理不太清楚,等搞明白再來補充。這里只記錄如何應(yīng)用這些數(shù)據(jù)。
用法:
根據(jù)上面的圖片,由于是post請求,參數(shù)一般是以key-value的json字符串傳遞,或者將參數(shù)放入map傳遞。我們可以看到很多name,這個name就是key,下面的數(shù)據(jù)就是value,我們可以提取所有的key及value,組成一個json字符串或者map傳遞即可。
比如上面的數(shù)據(jù)可以提取如下:
{"view:id1:txtSearch":"","$$viewid":"!f9fpyhcv2t!","$$xspsubmitid":"view:_id1:_id2:pager1_Group_lnk_2","$$xspexecid":"view:_id1:_id2:parent","$$xspsubmitvalue":"","$$xspsubmitscroll":"0|0","view:_id1":"view:_id1"}
或者:
Map<String,String> m = new HashMap<String,String>(); m.put("view:id1:txtSearch", ""); m.put("$$viewid", "!f9fpyhcv2t!"); m.put("$$xspsubmitid", "view:_id1:_id2:pager1_Group_lnk_2"); m.put("$$xspexecid", "view:_id1:_id2:parent"); m.put("$$xspsubmitvalue", ""); m.put("$$xspsubmitscroll", "0|0"); m.put("view:_id1", "view:_id1");
由于我是用Jsoup來發(fā)請求的,所以我這樣傳參數(shù)即可:
Jsoup.connect("").data(m).cookies(null).method(Method.POST);
或者:
Connection conn = Jsoup.connect(""); String requestJson = "{\"view:id1:txtSearch\":\"\",\"$$viewid\":\"!f9fpyhcv2t!\",\"$$xspsubmitid\":\"view:_id1:_id2:pager1_Group_lnk_2\",\"$$xspexecid\":\"view:_id1:_id2:parent\",\"$$xspsubmitvalue\":\"\",\"$$xspsubmitscroll\":\"0|0\",\"view:_id1\":\"view:_id1\"}"; conn.requestBody(requestJson); conn.cookies(null).method(Method.POST); conn.execute();
具體參數(shù)具體情況填啦。
是不是超簡單。
注意一點,請求負(fù)載中的value值不一定是固定值,若每次請求都會發(fā)生變化,那么就需要分析這個變化的值從哪里來,動態(tài)獲取這個值,然后發(fā)送請求才能正確。
以上這篇Python爬蟲:Request Payload和Form Data的簡單區(qū)別說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 利用pywifi模塊實現(xiàn)連接網(wǎng)絡(luò)破解wifi密碼實時監(jiān)控網(wǎng)絡(luò)
這篇文章主要介紹了python 利用pywifi模塊實現(xiàn)連接網(wǎng)絡(luò)破解wifi密碼實時監(jiān)控網(wǎng)絡(luò),需要的朋友可以參考下2019-09-09基于keras輸出中間層結(jié)果的2種實現(xiàn)方式
今天小編就為大家分享一篇基于keras輸出中間層結(jié)果的2種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01ruff check文件目錄檢測--exclude參數(shù)設(shè)置路徑詳解
這篇文章主要為大家介紹了ruff check文件目錄檢測exclude參數(shù)如何設(shè)置多少路徑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10python torch.utils.data.DataLoader使用方法
這篇文章主要介紹了python torch.utils.data.DataLoader使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04文件上傳服務(wù)器-jupyter 中python解壓及壓縮方式
這篇文章主要介紹了文件上傳服務(wù)器-jupyter 中python解壓及壓縮方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04