Python爬虫:Request Payload和Form Data的简单区别说明

作者:彭世瑜 时间:2021-11-14 14:01:24 

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来发请求的,所以我这样传参数即可:

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值不一定是固定值,若每次请求都会发生变化,那么就需要分析这个变化的值从哪里来,动态获取这个值,然后发送请求才能正确。

来源:https://blog.csdn.net/mouday/article/details/83659770

标签:Python,Request,Payload,Form,Data
0
投稿

猜你喜欢

  • 透彻掌握ASP分页技术

    2009-03-09 18:26:00
  • Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)

    2023-09-03 10:22:39
  • 输入法下keyup失效的解决方案

    2007-11-01 12:57:00
  • asp base64 utf-8为了兼容asp.net的base64

    2011-03-10 10:47:00
  • 详解php中反射的应用

    2023-11-15 01:26:56
  • ASP中将Excel数据导入到Access

    2009-02-02 09:15:00
  • 一文秒懂pandas中iloc()函数

    2023-07-31 18:20:42
  • Oracle PL/SQL入门案例实践

    2010-07-18 13:13:00
  • Pycharm设置界面全黑的方法

    2021-09-15 11:13:51
  • 如何在pyqt中实现全局事件实战记录

    2023-07-01 02:25:46
  • Python基础之模块相关知识总结

    2021-09-06 21:39:39
  • python数据预处理 :数据共线性处理详解

    2022-06-29 09:46:24
  • 用ASP在线创建Word与Excel文档

    2008-07-20 19:17:00
  • python+matplotlib演示电偶极子实例代码

    2021-07-09 12:52:35
  • python读取Kafka实例

    2023-10-22 17:22:58
  • 如何用Python做一个微信机器人自动拉群

    2023-04-07 10:50:09
  • php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法

    2023-09-09 18:55:22
  • HTML在线编辑器的原理分析(整理)

    2007-12-22 10:25:00
  • 详解Django-auth-ldap 配置方法

    2023-05-16 14:50:17
  • golang中json和struct的使用说明

    2023-10-09 13:09:10
  • asp之家 网络编程 m.aspxhome.com