• requests -- http请求库封装(中级)


    上篇写了requests 的基本操作,对其进行封装,为了框架更加方便的使用,这只写了 get 和 post 需要使用其他的请求方式,可以再添加
    这分为两个部分 一个不需要记住cookie请求的,一个需要记住 cookie、

    (一篇基础,一篇封装)

    import requests
    import logging
    
    
    class RequestsHandler:
        """ 不需要记住cookie信息的请求类 """
    
        def get(self, url, params=None, **kwargs):
            """ 发送get请求
            params 传递参数就是放到URL里面传递
            data 在form表单中传递参数 """
            try:
                res = requests.get(url, params=params, **kwargs)
            except Exception:
                # 记录异常到日志
                logging.info('访问get请求不成功')
                # raise  # 手动抛出异常
            else:
                # 操作成功运行 else
                return res
    
        def post(self, url, data=None, json=None, **kwargs):
            """ 发送post请求 """
            try:
                res = requests.post(url, data=data, json=json, **kwargs)
            except Exception:
                # 记录异常到日志
                logging.info('访问post请求不成功')
            else:
                # 操作成功运行 else
                return res
    
        def visit(self, method, url, params=None, data=None, json=None, **kwargs):
            """
            访问 get 和 post 接口
            :param method:请求方法
            :param url:URL地址
            :param params:参数放到URL里面传递,
            :param data:在form表单中传递参数
            :param json:json 格式
            """
            #  lower 转换成小写
            if method.lower() == 'get':
                return self.get(url, params=params, **kwargs)
            elif method.lower() == 'post':
                return self.post(url, params=params, data=data, json=json, **kwargs)
            else:
                # 其他请求
                # requests 通用的访问方式  其他的也是使用的 request 进行的具体封装
                return requests.request(method, url, params=params, data=data, json=json, **kwargs)
    
        def json(self, method, url, params=None, data=None, json=None, **kwargs):
            """ 访问接口, 获取json数据 """
            res = self.visit(method, url, params=params, data=data, json=json, **kwargs)
            # 获取json 数据
            try:
                return res.json()
            except:
                logging.info('获取json 数据失败,不是json格式的数据')
    
    
    class RequestsCookieHandler:
        """ 记住coolie信息的请求类 """
    
        def __init__(self):
            # Session 管理 cookie  作用是动态管理cookie
            self.session = requests.Session()
    
        def get(self, url, params=None, **kwargs):
            """ 发送get请求
            params 传递参数就是放到URL里面传递
            data 在form表单中传递参数 """
            try:
                res = self.session.get(url, params=params, **kwargs)
            except Exception:
                # 记录异常到日志
                logging.info('coolie请求类,访问get请求不成功')
                # raise  # 手动抛出异常
            else:
                # 操作成功运行 else
                return res
    
        def post(self, url, data=None, json=None, **kwargs):
            """ 发送post请求 """
            try:
                res = self.session.post(url, data=data, json=json, **kwargs)
            except Exception:
                # 记录异常到日志
                logging.info('coolie请求类,访问post请求不成功')
            else:
                # 操作成功运行 else
                return res
    
        def visit(self, method, url, params=None, data=None, json=None, **kwargs):
            """
            访问 get 和 post 接口
            :param method:请求方法
            :param url:URL地址
            :param params:参数放到URL里面传递,
            :param data:在form表单中传递参数
            :param json:json 格式
            """
            #         lower 转换成小写
            if method.lower() == 'get':
                return self.get(url, params=params, **kwargs)
            elif method.lower() == 'post':
                return self.post(url, params=params, data=data, json=json, **kwargs)
            else:
                # 其他请求
                # requests 通用的访问方式
                return self.session.request(method, url, params=None, data=None, json=None, **kwargs)
    
        def json(self, method, url, params=None, data=None, json=None, **kwargs):
            """ 访问接口, 获取json数据 """
            res = self.visit(method, url, params=params, data=data, json=json, **kwargs)
            # 获取json 数据
            try:
                return res.json()
            except:
                logging.info('coolie请求类,获取json 数据失败,不是json格式的数据')
  • 相关阅读:
    Pytorch tensor求和( tensor.sum())
    Pytorch torch.cat(inputs, dimension=0)
    README.md编写
    Numpy-np.random.normal()正态分布
    numpy数组的分割与合并
    使用Pandas读取CSV文件
    train loss与test loss结果分析/loss不下降
    Python-给数字/字符串前加0
    SVM简单上手示例
    迁移学习简介
  • 原文地址:https://www.cnblogs.com/yongzhuang/p/12214290.html
Copyright © 2020-2023  润新知