python requests form data_Python爬虫:Request Payload和Form Data的简单区别说明
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 m = new HashMap();
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 requests form data_Python爬虫:Request Payload和Form Data的简单区别说明相关推荐
- http协议的Request Payload 和 Form Data 的区别
Request Payload VS Form Data 前端请求 我看了前端发起的请求,请求正文并不是我熟悉的 Form Data,而是 Request Payload.如图注意下面两个请求的 Co ...
- Vue-resource中post请求将data数据以request payload转换为form data的形式
今天在做项目的时候 需要往api中发送一个json格式的对象,但是怎么改都不行,当然,使用的vue 的 http方法. 而且,开始使用时 vue-resource中post请求时的一个坑,vue-re ...
- angularjs中$http模块发送post请求request payload转form data
背景: ionic+ angularjs+ cordova 在开发一个证书照片删除的时候,后端提供了一个post接口,需要前端将数据转化成form data.而在angularjs中,如果直接用pos ...
- Python requests ip代理爬虫报错 HTTPSConnectionPool(host=‘xxxxx‘, port=443) Max retries exceed
本人系统:macOS10.15.6 Catalina 场景:使用Python requests 包+ip代理池爬取网站数据 出现报错:HTTPSConnectionPool(host='xxxxx', ...
- Python requests ip代理爬虫报错 HTTPSConnectionPool(host=‘xxxxx‘, port=443): Max retries exceed...
本人系统:macOS10.15.6 Catalina 场景:使用Python requests 包+ip代理池爬取网站数据 出现报错:HTTPSConnectionPool(host='xxxxx', ...
- python requests模块_Python 爬虫教程 requests 模块
经过 前边文章<简单Python爬虫教程 (一)>.简单Python爬虫教程 (二)两篇文章的学习,能写一些比较简单的爬虫了,但是还不够,这一篇文章主要介绍Requests模块,reque ...
- java request payload_前后端联调之Form Data与Request Payload,你真的了解吗?
前言 做过前后端联调的小伙伴,可能有时会遇到一些问题.例如,我明明传递数据给后端了,后端为什么说没收到呢?这时候可能就会就会有小伙伴陷入迷茫,本文从chrome-dev-tools(F12调试器)中看 ...
- Ajax 通过 Request Payload 体发送 JSON 数据体
为什么80%的码农都做不了架构师?>>> AJAX POST 发送数据有2种方式: Form Data 和 Request Payload . Form Data 是我们大家 ...
- python爬虫post请求翻页_python爬虫如何POST request payload形式的请求
python爬虫如何POST request payload形式的请求 1. 背景 最近在爬取某个站点时,发现在POST数据时,使用的数据格式是request payload,有别于之前常见的 POS ...
最新文章
- 使用VC6.0创建和运行C程序的方法
- Linux环境下虚拟环境virtualenv安装和使用(转)
- 菜鸟教程-Javascript学习笔记-JS函数之前
- 2016.3.22(关系型数据库简介,管理数据库和表)
- ORACLE查找并解除死锁进程
- Windows下配置Git
- VB制作OCX控件的步骤
- Windows Mobile下猜数字游戏的TDD实现
- html5爆音,刻录音乐CD出现爆音的解决方法
- 手艺人舍bpftrace而取systemtap的代价和思考
- Linux下iwconfig权限,Linux中用iwconfig配置wireless-tools
- MATLAB画柱状图(包括普通柱状图,多组柱状图,三维柱状图)
- linux中man命令的基本用法,linux中的man命令的详细解释
- ps 自动生成html代码,详解使用PS中直接生成html网页保存样式的步骤
- Websocket和PHP Socket编程
- 华为无线设备Mesh配置命令
- curl php 宝塔 开启_宝塔安装php失败
- [第23课] 期望值E(X)
- 使用CMAKE和交叉编译工具链
- 500是什么php,HTTP 500,该怎么解决
热门文章
- 【C语言】创建一个函数,判断某一正整数是否为水仙花数,并调用这个函数找出1000以内所有水仙花数...
- C#设计模式之20-状态模式
- rundll32的使用和使用c#调用dll
- golang中的http server和http client
- 【ios】开发者笔记-编写第一个app
- java中super关键字的用法
- oracle伪列ROWNUMBER,oracle 中 rownum 和 row_number()
- vb.net 数据集设计器 新增列_SQLPro for MSSQL for Mac(数据库客户端)
- chrome导出插件
- Python之路---函数进阶