python requests库中的post详解

Python011

python requests库中的post详解,第1张

一、post请求及响应详解

返回结果:

大家看,其实通过post发送请求很简单

下面再讲讲返回信息的具体内容

大家看,其实有很多的返回值参数,其实我们实际中能用到的并不多,我下边一一列举出来了

response.json():返回信息的格式是json,应为我们请求的时候是json格式,返回的也是一个json,如果返回报错,应该是开发的接口出错了

response.text:如果response.json,可以使用text调试一下,看看具体的返回内容是什么,这里看到的都是字符串了

response.status_code:返回的http状态码,200是成功,404是未找到接口路径,500是服务器错误,等等

response.url:返回请求时的url地址

response.headers:返回服务器给你的响应header

response.cookies:返回服务器给你的cookies,这是一个多么好的获取cookie的方法啊,

response.content:同response.text是一样的

二、post请求中的其他参数

复制

import requests

res = requests.post(url="url",data="body",timeout=30,verfiy=False)

print(res.json())

url:请求的全路径地址,一定是要完整的路径哦

data:请求的内容,如果是json的格式,最好使用json.dumps,反序列化一下,避免格式错误,如果是其他格式,就都是字符串了

timeout:设置超时时间,这样我们在自动化测试和爬虫的时候,当达到了设置的超时时间,我们的程序就退出不会一直等待了,可以做其他操作了

verfiy:如果请求的接口是https协议,这个参数就很好用了,如果设置该参数为True,那么我们的脚本就是要配置CA证书,建议参数值为False,好用又简单

好了,post的请求详解就这些了,欢迎大家点赞留言,我会给大家解答疑问的

Python用post好,下面是它们的具体区别:

GET产生一个TCP数据包;POST产生两个TCP数据包。

解释:

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。

因为POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效。因此Yahoo团队有推荐用GET替换POST来优化网站性能。但这是一个坑!跳入需谨慎。为什么?

1. GET与POST都有自己的语义,不能随便混用。

2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。

3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

所以从本质上来说,post比get好。

更多Python知识,请关注:Python自学网!!

一个现象:

很多情况下,我们需要登陆账号,才能爬取更多的信息。

而我们想要登陆的话,则需要带上 cookies。

以 https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php](https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php) 作为爬虫范例吧。

账号:spiderman,密码:crawler334566

这里又来了一个post请求?

(1)post和get都可以带着参数请求,不过get请求的参数会在url上显示出来。

(2)post请求的参数就不会直接显示,而是隐藏起来。像账号密码这种私密的信息,就应该用post的请求。

(3)get请求会应用于获取网页数据,比如我们之前学的requests.get()。post请求则应用于向网页提交数据,比如提交表单类型数据(像账号密码就是网页表单的数据)。

【requests headers】存储的是浏览器的请求信息,【response headers】存储的是服务器的响应信息。我们要找的cookies就在其中。

【response headers】里有set cookies的参数。set cookies是什么意思?就是服务器往浏览器写入了cookies。

明天接着写cookies吧,难的地方分多步完成!