python怎么查看网页编码格式_Python写爬虫时如果碰到以Request Payload格式传输数据怎么办?...

8f427ab6e8c9627b88bf54701c447b5a.png

文 | 猿天罡

前言

最近想用 Python 自动地爬取某个站点里的图片,没想到其请求数据是以request payload格式传输给后端进行处理的。博主还是第一次遇到这种情况,写下这篇文章记录一下解决过程。

博主浏览器使用的是 Chrome,下文说的浏览器一律指的是 Chrome浏览器。

POST提交数据常见的几种Content-Type

在网络请求中常用的Content-Type有很多,但是在POST请求下我们常用的Content-Type大约有3种。

1.application/x-www-form-urlencoded

这应该是我们最常见到的POST数据提交方式,原生的表单默认提交方式就是这个,

我用站长工具模拟原生的POST请求,如图1-1:

6837bf606f534379bb37ecc75e08198b.png

图1-1

第一个红框可以看到请求的Content-Type确实是application/x-www-form-urlencoded,第二个红框展示的是向后端请求的数据,它是经过浏览器解码然后展示给我们看的,实际上数据编码格式如图1-2:

70a52b69d80d7371a301100ce7b650df.png

图1-2

可以看到,我们请求的数据变成了键值对的形式,并且中间用&分隔,形如key1=val1&key2=val2。

2.multipart/form-data

使用表单传数文件时,Content-Type必须是multipart/form-data,传输的文件会被分割成多个部分,每部分使用--boundary分割。

大体如图2-1:

4e9e2a8762ad28bf04e7f92339eeefb7.png

图2-1

第二个红框数据也是经过浏览器解码的,原始数据如图2-2:

86e6f116f1ceb129d82b8da549a0c595.png

图2-2

3.application/json

一般情况下,我们遇到的POST请求数据编码格式都是application/x-www-form-urlencoded,但是这种格式有局限性,如果想向后端传输复杂的数据,如:

{ "info": [ { "name": "Kelvin
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值