详解python requests中的post请求的参数问题

 更新时间:2021年03月26日 10:12:40   作者:润年  
这篇文章主要介绍了详解python requests中的post请求的参数问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

问题:最新在爬取某站点的时候,发现在post请求当中,参数构造正确却获取不到数据,索性将post的参数urlencode之后放到post请求的url后面变成get请求,结果成功获取到数据,对此展开疑问。

1.http请求中Form Data和Request Playload的区别:

  Ajax post请求中常用的两种参数形式:form data 和 request payload

  get请求的时候,我们的参数直接反映在url里面,为key1=value1&key2=value2形式,如果是post请求,那么表单参数是在请求体中,也是以key1=value1&key2=value2的形式在请求体中。通过chrome的开发者工具可以看到如下

a.Form Data类型:

这种情况有两种处理方式,一个是把这个post请求变成get请求,即把请求参数通过"?key1=value1&key2=value2"拼接在url当中,然后以get方式请求就可以了:response = requests.get(url,headers=headers),其中url为拼接的url

另一种是仍然用post请求,将参数放在data中:response = requests.post(url,headers=headers,data=data),其中url为post url.

注意上图中红圈内的内容,这里请求头中的Content-Type为application/x-www-form-urlencoded,点击Form Data旁边的view source,变成了key1=value1&key2=value2形式,如下图,这时你可以将这部分内容加到post的Request URL后面使它变成一个get请求,就可以获取到数据了,

b.Request Payload类型

同样在chrome浏览器开发者工具中可以看到它们不同的地方,Content-Type为application/json,表明需要传的是一个json类型的对象,点击view source,如下图

自动变成了json类型,这时必须发post请求,将这json对象传入才可获取数据。形如:

response = requests.post(url,json=data,headers=headers) 相比普通的post,这个post参数中的data一定要序列化才行。

参考:https://stackoverflow.com/questions/10494574/what-is-the-difference-between-form-data-and-request-payload

到此这篇关于详解python requests中的post请求的参数问题的文章就介绍到这了,更多相关python requests post请求参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python ArcPy实现批量计算多时相遥感影像的各项元平均值

    Python ArcPy实现批量计算多时相遥感影像的各项元平均值

    这篇文章主要为大家详细介绍了如何基于Python中ArcPy模块,实现对大量长时间序列栅格遥感影像文件的每一个像元进行多时序平均值的求取,感兴趣的可以了解一下
    2023-04-04
  • Python实现光速定位并提取两个文件的不同之处

    Python实现光速定位并提取两个文件的不同之处

    如果你经常与Excel或Word打交道,那么从两份表格/文档中找到不一样的元素是一件让人很头疼的工作。本文就将以两份真实的Excel/Word文件为例,讲解如何使用Python光速对比并提取文件中的不同之处
    2022-08-08
  • Python Selenium库的基本使用教程

    Python Selenium库的基本使用教程

    这篇文章主要给大家介绍了关于Python Selenium库的基本使用教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python实现简易图书管理系统

    python实现简易图书管理系统

    这篇文章主要为大家详细介绍了python实现简易图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • python使用装饰器作日志处理的方法

    python使用装饰器作日志处理的方法

    今天小编就为大家分享一篇python使用装饰器作日志处理的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python+Matplotlib绘制小提琴图的示例代码

    Python+Matplotlib绘制小提琴图的示例代码

    小提琴图 (Violin Plot) 类似纺锤,是一种用来显示数据分布和概率密度的图形,本文为大家介绍了Matplotlib绘制小提琴图的函数源码,需要的可以参考一下
    2023-06-06
  • python实现感知机线性分类模型示例代码

    python实现感知机线性分类模型示例代码

    这篇文章主要给大家介绍了关于python实现感知机线性分类模型的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • python中main函数(主函数)相关应用例子

    python中main函数(主函数)相关应用例子

    这篇文章主要介绍了python中main函数(主函数)相关应用,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Python GUI库PyQt5图形和特效样式QSS介绍

    Python GUI库PyQt5图形和特效样式QSS介绍

    这篇文章主要介绍了Python GUI库PyQt5图形和特效样式QSS介绍,需要的朋友可以参考下
    2020-02-02
  • Django--权限Permissions的例子

    Django--权限Permissions的例子

    今天小编就为大家分享一篇Django--权限Permissions的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08

最新评论