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的简单区别说明相关推荐

  1. http协议的Request Payload 和 Form Data 的区别

    Request Payload VS Form Data 前端请求 我看了前端发起的请求,请求正文并不是我熟悉的 Form Data,而是 Request Payload.如图注意下面两个请求的 Co ...

  2. Vue-resource中post请求将data数据以request payload转换为form data的形式

    今天在做项目的时候 需要往api中发送一个json格式的对象,但是怎么改都不行,当然,使用的vue 的 http方法. 而且,开始使用时 vue-resource中post请求时的一个坑,vue-re ...

  3. angularjs中$http模块发送post请求request payload转form data

    背景: ionic+ angularjs+ cordova 在开发一个证书照片删除的时候,后端提供了一个post接口,需要前端将数据转化成form data.而在angularjs中,如果直接用pos ...

  4. Python requests ip代理爬虫报错 HTTPSConnectionPool(host=‘xxxxx‘, port=443) Max retries exceed

    本人系统:macOS10.15.6 Catalina 场景:使用Python requests 包+ip代理池爬取网站数据 出现报错:HTTPSConnectionPool(host='xxxxx', ...

  5. Python requests ip代理爬虫报错 HTTPSConnectionPool(host=‘xxxxx‘, port=443): Max retries exceed...

    本人系统:macOS10.15.6 Catalina 场景:使用Python requests 包+ip代理池爬取网站数据 出现报错:HTTPSConnectionPool(host='xxxxx', ...

  6. python requests模块_Python 爬虫教程 requests 模块

    经过 前边文章<简单Python爬虫教程 (一)>.简单Python爬虫教程 (二)两篇文章的学习,能写一些比较简单的爬虫了,但是还不够,这一篇文章主要介绍Requests模块,reque ...

  7. java request payload_前后端联调之Form Data与Request Payload,你真的了解吗?

    前言 做过前后端联调的小伙伴,可能有时会遇到一些问题.例如,我明明传递数据给后端了,后端为什么说没收到呢?这时候可能就会就会有小伙伴陷入迷茫,本文从chrome-dev-tools(F12调试器)中看 ...

  8. Ajax 通过 Request Payload 体发送 JSON 数据体

    为什么80%的码农都做不了架构师?>>>    AJAX POST 发送数据有2种方式: Form Data 和  Request Payload . Form Data 是我们大家 ...

  9. python爬虫post请求翻页_python爬虫如何POST request payload形式的请求

    python爬虫如何POST request payload形式的请求 1. 背景 最近在爬取某个站点时,发现在POST数据时,使用的数据格式是request payload,有别于之前常见的 POS ...

最新文章

  1. 使用VC6.0创建和运行C程序的方法
  2. Linux环境下虚拟环境virtualenv安装和使用(转)
  3. 菜鸟教程-Javascript学习笔记-JS函数之前
  4. 2016.3.22(关系型数据库简介,管理数据库和表)
  5. ORACLE查找并解除死锁进程
  6. Windows下配置Git
  7. VB制作OCX控件的步骤
  8. Windows Mobile下猜数字游戏的TDD实现
  9. html5爆音,刻录音乐CD出现爆音的解决方法
  10. 手艺人舍bpftrace而取systemtap的代价和思考
  11. Linux下iwconfig权限,Linux中用iwconfig配置wireless-tools
  12. MATLAB画柱状图(包括普通柱状图,多组柱状图,三维柱状图)
  13. linux中man命令的基本用法,linux中的man命令的详细解释
  14. ps 自动生成html代码,详解使用PS中直接生成html网页保存样式的步骤
  15. Websocket和PHP Socket编程
  16. 华为无线设备Mesh配置命令
  17. curl php 宝塔 开启_宝塔安装php失败
  18. [第23课] 期望值E(X)
  19. 使用CMAKE和交叉编译工具链
  20. 500是什么php,HTTP 500,该怎么解决

热门文章

  1. 【C语言】创建一个函数,判断某一正整数是否为水仙花数,并调用这个函数找出1000以内所有水仙花数...
  2. C#设计模式之20-状态模式
  3. rundll32的使用和使用c#调用dll
  4. golang中的http server和http client
  5. 【ios】开发者笔记-编写第一个app
  6. java中super关键字的用法
  7. oracle伪列ROWNUMBER,oracle 中 rownum 和 row_number()
  8. vb.net 数据集设计器 新增列_SQLPro for MSSQL for Mac(数据库客户端)
  9. chrome导出插件
  10. Python之路---函数进阶