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 smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
Python实现将DOC文档转换为PDF的方法
Jul 25 Python
python黑魔法之参数传递
Feb 12 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
Python实现判断字符串中包含某个字符的判断函数示例
Jan 08 Python
Python实现备份MySQL数据库的方法示例
Jan 11 Python
Tensorflow 同时载入多个模型的实例讲解
Jul 27 Python
python实现括号匹配的思路详解
Aug 23 Python
django认证系统实现自定义权限管理的方法
Aug 28 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
Windows 下python3.8环境安装教程图文详解
Mar 11 Python
python有几个版本
Jun 17 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
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
JavaScript 中的replace方法说明
2007/04/13 Javascript
JavaScript 事件参考手册
2008/12/24 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
JavaScript 学习笔记(十二) dom
2010/01/21 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
利用Python开发微信支付的注意事项
2016/08/19 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
关于python写入文件自动换行的问题
2018/06/23 Python
创建Django项目图文实例详解
2019/06/06 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
Python 定义只读属性的实现方式
2020/03/05 Python
Python之变量类型和if判断方式
2020/05/05 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
英国水族馆和池塘用品购物网站:Warehouse Aquatics
2019/08/29 全球购物
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
培训研修方案
2014/06/06 职场文书
工程造价专业求职信
2014/07/17 职场文书
公务员年度考核评语
2014/12/31 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle
使用python生成大量数据写入es数据库并查询操作(2)
2022/09/23 Python