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
[qp18502452 ] Python爬蟲:Request Payload和Form Data的簡單區別說明已經有325次圍觀