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的迭代器与生成器实例详解
Jul 16 Python
实例讲解Python设计模式编程之工厂方法模式的使用
Mar 02 Python
Python中标准模块importlib详解
Apr 16 Python
详解K-means算法在Python中的实现
Dec 05 Python
python matplotlib 注释文本箭头简单代码示例
Jan 08 Python
Python基于递归算法求最小公倍数和最大公约数示例
Jul 27 Python
python实现简单登陆系统
Oct 18 Python
PyTorch学习:动态图和静态图的例子
Jan 06 Python
PyTorch的SoftMax交叉熵损失和梯度用法
Jan 15 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
Django实现从数据库中获取到的数据转换为dict
Mar 27 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
Jan 28 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
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
复选框全选与全不选操作实现思路
2013/08/18 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
python 调用HBase的简单实例
2016/12/18 Python
详解python eval函数的妙用
2017/11/16 Python
python实现二叉树的遍历
2017/12/11 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
python中嵌套函数的实操步骤
2019/02/27 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
毕业研究生的自我鉴定
2013/11/30 职场文书
劳动之星获奖感言
2014/02/01 职场文书
机关单位动员会主持词
2014/03/20 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
丽江古城导游词
2015/02/03 职场文书
详解NodeJS模块化
2021/06/15 NodeJs