常用脚本:request请求结果处理函数(GetRequestsFunctions.py)

说明

封装requests请求函数,包括异常处理及超时超次设置。

代码
# -*- coding: utf-8 -*-
'''
 @Time : 2020/10/21 10:35 

 @Author : Songyou Han

 @File : UrlRequestsFunctions.py

 @Description : url请求及数据提取函数

 @Software: PyCharm
'''
import requests
import time
import json

class GetRequestsFunctions:
    # 初始化请求函数库
    def __init__(self):
        print("调用查询函数类:GetRequestsFunctions...")

    # get请求函数:拼接单个字符串
    def getRequestsWithString(self,baseurl:str,value:str = ''):
        '''【获取请求数据/拼接字符】參數:baseurl基本url,value拼接值;返回:response请求响应体'''
        url = baseurl +"/"+ value   
        while True:
            try:
                response = self.getRequests(url = url).json()
                break
            except Exception as e:
                print('请求失败——10s后重试——异常:', e)
                time.sleep(10) #10s后重試
        return response

    # get请求函数:拼接字段名称&字段值
    def getRequestsWithParams(self,baseurl:str,paramsDict:dict):
        '''【获取请求数据/参数列表】參數:baseurl基本url,paramsDict拼接值字典;返回:response请求响应体'''
        while True:
            try:
                response = self.getRequests(url=baseurl, params=paramsDict).json()
                break
            except Exception as e:
                print('请求失败——10s后重试——异常:', e)
                time.sleep(10) #10s后重試
        return response

    # get请求函数基本函数
    def getRequests(self,url:str,params:dict = {},limitTimes:int = 10):
        '''【获取请求数据】参数:url,limitTimes请求次数限制;输出:response请求响应体'''
        count = 0 # 計數器
        while count < limitTimes:
            count += 1
            try:
                if not params:#无params参数则直接请求数据
                    response = requests.get(url,timeout=5)
                else:#有params参数则带参请求数据
                    response = requests.get(url=url,params=params)
                break
            except Exception as e:
                print('请求失败——10s后重试——异常:', e)
                time.sleep(10) #10s后重試
        # 输出结果
        if count <= limitTimes:return response
        else:print("嘗試{limitTimes}次請求失敗...".format(limitTimes = limitTimes));return False
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值