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开发WebService系列教程之REST,web.py,eurasia,Django
Jun 30 Python
Python虚拟环境Virtualenv使用教程
May 18 Python
python实用代码片段收集贴
Jun 03 Python
基于python实现的抓取腾讯视频所有电影的爬虫
Apr 22 Python
python自带的http模块详解
Nov 06 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
Nov 02 Python
Python File readlines() 使用方法
Mar 19 Python
pandas.DataFrame.to_json按行转json的方法
Jun 05 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
django框架model orM使用字典作为参数,保存数据的方法分析
Jun 24 Python
让你的Python代码实现类型提示功能
Nov 19 Python
Python爬取酷狗MP3音频的步骤
Feb 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图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
js实现五星评价功能
2017/03/08 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
2019/07/10 jQuery
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
Python正规则表达式学习指南
2016/08/02 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
详解Django admin高级用法
2019/11/06 Python
python 串行执行和并行执行实例
2020/04/30 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
linux面试题参考答案(11)
2012/05/01 面试题
服装采购员岗位职责
2014/03/15 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
总结会主持词
2015/07/02 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书