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 相关文章推荐
python3访问sina首页中文的处理方法
Feb 24 Python
Python中非常实用的一些功能和函数分享
Feb 14 Python
30分钟搭建Python的Flask框架并在上面编写第一个应用
Mar 30 Python
python fabric实现远程部署
Jan 05 Python
浅谈python3中input输入的使用
Aug 02 Python
python线程安全及多进程多线程实现方法详解
Sep 27 Python
浅析python,PyCharm,Anaconda三者之间的关系
Nov 27 Python
Python selenium的基本使用方法分析
Dec 21 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
Apr 20 Python
使用Python构造hive insert语句说明
Jun 06 Python
python中return不返回值的问题解析
Jul 22 Python
python实现银行账户系统
Feb 22 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 url路由入门实例
2014/04/23 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
js+css在交互上的应用
2010/07/18 Javascript
Js组件的一些写法
2010/09/10 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
Vue实现购物车功能
2017/04/27 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
python getopt 参数处理小示例
2009/06/09 Python
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
简单了解python gevent 协程使用及作用
2019/07/22 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
印度网上药店:1mg
2017/10/13 全球购物
家属慰问信
2015/02/14 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
2016年元旦致辞
2015/08/01 职场文书
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫