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发送伪造的arp请求
Jan 09 Python
Python 中的 else详解
Apr 23 Python
Python中functools模块的常用函数解析
Jun 30 Python
Python星号*与**用法分析
Feb 02 Python
Python中生成器和迭代器的区别详解
Feb 10 Python
让代码变得更易维护的7个Python库
Oct 09 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
Python 实现顺序高斯消元法示例
Dec 09 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
May 07 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 Python
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
Jun 26 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加入ftp扩展的解决方法
2013/02/07 PHP
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
js调试工具Console命令详解
2014/10/21 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
js定时器实例分享
2016/12/20 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
2018/03/01 Javascript
iView框架问题整理小结
2018/10/16 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
Python常用正则表达式符号浅析
2014/08/13 Python
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
语文教学随笔感言
2014/02/18 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
小学生操行评语
2014/04/22 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
继承公证书格式
2015/01/26 职场文书
公司禁烟通知
2015/04/23 职场文书
结婚典礼主持词
2015/06/29 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
详解pytorch创建tensor函数
2022/03/22 Python
Python中的 No Module named ***问题及解决
2022/07/23 Python