python requests库中的post详解,有这一篇可以做爬虫和接口就足够了

2021/7/1 20:21:51

本文主要是介绍python requests库中的post详解,有这一篇可以做爬虫和接口就足够了,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

上一篇文章,我们详细介绍了http请求的常用方法以及细节,大家可以点击:https://blog.51cto.com/u_13025170/2961690进行观看,这一篇文章让你对整个http请求有更详细的认识,两篇结合看,掌握自动化和爬虫不再是难事

话不多说,我们直奔主题,上代码

一、post请求及响应详解

# -*- coding: utf-8 -*-
#引入requests库
import requests
 
#设置函数,抿成send_requests
def send_requests():
    #请求地址
    url = 'http://httpbin.org/post'
    #请求数据,一定是个双引号的字典形式
    body = {"key1": "value1", "key2": "value2"}

    #请求头
    header={
        #设置连接请求类型为json
       "Content-Type": "application/json",
        #token,这里使用的是postman
        "Postman-Token": "0f7408f7-9869-48ba-9433-871bf4b6f560",
       #用户请求的代理,建议请求header中要加上,避免服务端接口有反爬虫设置
        "User-Agent": "PostmanRuntime/7.28.1"}

   #使用requests.post发送请求
    res = requests.post(url, data=body,headers=header)
   #返回请求数据格式为json
    return res.json()

#程序的主入口
if __name__ == "__main__":
    #实例化函数,并赋值给response 
    response = send_requests()
    #打印结果到屏幕上
    print(response)

返回结果:

#返回的请求头
"headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate, br",
       #返回数据的长度
        "Content-Length": "36",
       #连接的数据类型:json
        "Content-Type": "application/json",
       #请求的主机地址
        "Host": "httpbin.org",
        #token,这里使用的是postman
        "Postman-Token": "0f7408f7-9869-48ba-9433-871bf4b6f560",
       #用户请求的代理,建议请求header中要加上,避免服务端接口有反爬虫设置
        "User-Agent": "PostmanRuntime/7.28.1",
        "X-Amzn-Trace-Id": "Root=1-60dda783-6a28eddc29f6f7941c47b5a4"
    },
    #返回的数据
    "json": {
        "key1": "value1",
        "key2": "value2"

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

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

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

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

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 requests库中的post详解,有这一篇可以做爬虫和接口就足够了的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程