Python3-Requests模块的简单使用

requests模块的使用

import requests

一、发送get请求

get请求传递参数使用params来进行传递

data = {
    "name": "desire",
    "age": 23
}
response = requests.get(url="http://httpbin.org/get", params=data)

获取响应数据

1、text属性(自动识别文本中的编码格式进行解码,有时候不准确,会出现乱码)

response.text

2、content(获取返回的内容,需要自己使用decode指定解码方式)

response.content.decode("utf8")

3、json():获取返回内容中的json数据(只能在返回数据时json的情况下使用)

response.json()

二、发送post请求

# 请求头
header = {
    "Content-Type": "application/json"
}
# 参数
data = {
    'name': 'Desire', 
    'age': '23'
}
# 请求地址
url = "http://httpbin.org/post"

json数值的参数一定要使用json去传递

response = requests.post(url=url, json=data)

如果表单类型的参数是Content-Type: application/x-www-form-urlencoded; charset=UTF-8

就需要使用data进行传递

response = requests.post(url=url, data=data, headers=header)

post请求上传文件: 使用files来上传文件

files = {'file': open('favicon.ico', 'rb')}
response = requests.post('http://httpbin.org/post', files=files)

三、发送patch请求

res = requests.patch(url="http://httpbin.org/patch")
print(res.json())

四、session会话维持

创建发送请求session对象,通过session对象发送请求
s = requests.Session()
通过session对象发送请求进行添加cookies值
s.get('http://httpbin.org/cookies/set/number/123456789')
通过同一个session对象发送请求,成功获取到上次请求添加的cookies值
response = s.get('http://httpbin.org/cookies')
print(response.text)

五、获取cookies值

response = requests.get('http://www.baidu.com')
print(response.cookies)

*封装发送请求类

class RequestsUrl(object):
    """发送请求"""

    @staticmethod
    def send(url, method, data=None, headers=None):
        """
        发送请求
        :param url:请求地址
        :param method:请求方式
        :param data:请求数据
        :param headers:请求头
        :return 返回响应结果
        """
        # 将大写转化成小写
        method = method.lower()
        if method == "get":
            return requests.get(url=url, params=data, headers=headers)
        elif method == "post":
            return requests.post(url=url, json=data, headers=headers)
        elif method == "patch":
            return requests.patch(url=url, data=data, headers=headers)

class RequestSessionUrl(object):
    """使用session鉴权的接口,使用这个发送请求"""

    def __init__(self):
        self.re = requests.sessions()

    def send(self, url, method, data=None, headers=None):
        """
        发送请求
        :param url:请求地址
        :param method:请求方式
        :param data:请求数据
        :param headers:请求头
        :return 返回响应结果
        """
        # 将大写转化成小写
        method = method.lower()
        if method == "get":
            return self.re.get(url=url, params=data, headers=headers)
        elif method == "post":
            return self.re.post(url=url, json=data, headers=headers)
        elif method == "patch":
            return self.re.patch(url=url, data=data, headers=headers)

猜你喜欢

转载自www.cnblogs.com/desireyang/p/12083510.html