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 相关文章推荐
在Django的form中使用CSS进行设计的方法
Jul 18 Python
Python中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
Python 列表排序方法reverse、sort、sorted详解
Jan 22 Python
Python爬取APP下载链接的实现方法
Sep 30 Python
python中redis的安装和使用
Dec 04 Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 Python
python代码xml转txt实例
Mar 10 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
Mar 19 Python
详解python实现可视化的MD5、sha256哈希加密小工具
Sep 14 Python
如何在Anaconda中打开python自带idle
Sep 21 Python
Python 中数组和数字相乘时的注意事项说明
May 10 Python
Python学习之迭代器详解
Apr 01 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
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
Javascript - HTML的request类
2007/01/09 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
2016/11/17 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
在Vue中使用echarts的方法
2018/02/05 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
深入学习js函数的隐式参数 arguments 和 this
2019/06/24 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
python实现合并两个排序的链表
2019/03/03 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
介绍一下Linux中的链接
2016/06/05 面试题
教师节活动总结
2014/08/29 职场文书
介绍信模板
2015/01/31 职场文书
简历自我评价模板
2015/03/11 职场文书
社区义诊通知
2015/04/24 职场文书
怒海潜将观后感
2015/06/11 职场文书
房屋质量投诉书
2015/07/02 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
一些让Python代码简洁的实用技巧总结
2021/08/23 Python
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫