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 不关闭控制台的实现方法
Oct 23 Python
python共享引用(多个变量引用)示例代码
Dec 04 Python
Python对小数进行除法运算的正确方法示例
Aug 25 Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
Python编程实现正则删除命令功能
Aug 30 Python
Python实用技巧之利用元组代替字典并为元组元素命名
Jul 11 Python
Django处理多用户类型的方法介绍
May 18 Python
解决python中导入win32com.client出错的问题
Jul 26 Python
Python 过滤错误log并导出的实例
Dec 26 Python
OpenCV中VideoCapture类的使用详解
Feb 14 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
May 07 Python
openCV提取图像中的矩形区域
Jul 21 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实现像JSP,ASP里Application那样的全局变量
2007/01/12 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
2014/06/19 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
python删除文件示例分享
2014/01/28 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
Python 正则表达式匹配字符串中的http链接方法
2018/12/25 Python
Python按钮的响应事件详解
2019/03/04 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
实习自我鉴定
2013/12/15 职场文书
2014年司法局工作总结
2014/12/11 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
环保建议书作文500字
2015/09/14 职场文书
用JS实现飞机大战小游戏
2021/06/09 Javascript
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python