• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
张玉萍Pilar 显示全部楼层 发表于 2021-10-26 13:52:27 |阅读模式 打印 上一主题 下一主题
问题:最新在爬取某站点的时间,发如今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对象传入才可获取数据。形如:
  1. 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哀求参数内容请搜刮草根技术分享从前的文章或继承浏览下面的相关文章盼望大家以后多多支持草根技术分享!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作