Python爬蟲:Request Payload和Form Data的簡單區(qū)別說明
Request Payload 和 Form Data 請求頭上的參數差別在于:
Content-Type
Form Data
Post表單請求
代碼示例
headers = {
"Content-Type": "application/x-www-form-urlencoded"
}
requests.post(url, data=data, headers=headers)
Request Payload
傳遞json數據
headers = {
"Content-Type": "application/json"
}
requests.post(url, data=json.dumps(data), headers=headers)
Scrapy 的FormRequest只支持 Form Data 表單提交,源碼固定為前者
補充知識:如何傳遞Request PayLoad(請求負載)中的數據?
在做爬蟲的時候,在分析請求的過程,遇到參數長這樣的:
原理不太清楚,等搞明白再來補充。這里只記錄如何應用這些數據。
用法:
根據上面的圖片,由于是post請求,參數一般是以key-value的json字符串傳遞,或者將參數放入map傳遞。我們可以看到很多name,這個name就是key,下面的數據就是value,我們可以提取所有的key及value,組成一個json字符串或者map傳遞即可。
比如上面的數據可以提取如下:
{"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ā)請求的,所以我這樣傳參數即可:
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();
具體參數具體情況填啦。
是不是超簡單。
注意一點,請求負載中的value值不一定是固定值,若每次請求都會發(fā)生變化,那么就需要分析這個變化的值從哪里來,動態(tài)獲取這個值,然后發(fā)送請求才能正確。
以上這篇Python爬蟲:Request Payload和Form Data的簡單區(qū)別說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python遍歷zip文件輸出名稱時出現(xiàn)亂碼問題的解決方法
這篇文章主要介紹了Python遍歷zip文件輸出名稱時出現(xiàn)亂碼問題的解決方法,實例分析了Python亂碼的出現(xiàn)的原因與相應的解決方法,需要的朋友可以參考下2015-04-04
PyQT5 QTDesigner窗口及組成的實現(xiàn)
這篇文章主要介紹了PyQT5 QTDesigner窗口及組成的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04

