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


Posted in Python onApril 30, 2020

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

以上这篇Python爬虫:Request Payload和Form Data的简单区别说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python web框架学习笔记
May 03 Python
使用Python生成XML的方法实例
Mar 21 Python
200 行python 代码实现 2048 游戏
Jan 12 Python
PyQt5每天必学之带有标签的复选框
Apr 19 Python
Django 根据数据模型models创建数据表的实例
May 27 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
TensorFlow 显存使用机制详解
Feb 03 Python
使用Python求解带约束的最优化问题详解
Feb 11 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 Python
Python实现石头剪刀布游戏
Jan 20 Python
Django如何创作一个简单的最小程序
May 12 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 #Python
python针对Oracle常见查询操作实例分析
Apr 30 #Python
python实现Oracle查询分组的方法示例
Apr 30 #Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 #Python
如何安装并在pycharm使用selenium的方法
Apr 30 #Python
Python基于进程池实现多进程过程解析
Apr 30 #Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 #Python
You might like
php实现的Timer页面运行时间监测类
2014/09/24 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
jQuery 注意事项 与原因分析
2009/04/24 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
Python实现统计英文文章词频的方法分析
2019/01/28 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
物理专业本科生自荐信
2014/01/30 职场文书
联谊会主持词
2014/03/26 职场文书
医学生毕业自我鉴定
2014/03/26 职场文书
4s店活动策划方案
2014/08/25 职场文书
员工离职感谢信
2015/01/22 职场文书
应届生求职自荐信范文
2015/03/04 职场文书
2016年记者节感言
2015/12/08 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
python基础之停用词过滤详解
2021/04/21 Python
教你怎么用python selenium实现自动化测试
2021/05/27 Python