python爬虫MeterSphere平台执行报告使用实战

 更新时间:2023年12月25日 11:08:25   作者:友友测试猿,小蔡  
这篇文章主要为大家介绍了python爬虫MeterSphere平台执行报告使用实战,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一、场景下API信息获取

1、通过商业id已获取到每个场景下id,我们通过场景id进行访问当前场景下的API,每个场景下面都会包含很多api,这时我们通过遍历进行获取。

2、获取到数据还是通过正则进行过滤处理。

#遍历每个场景下API
for TestReporTGGet in range(0, TestReporTgCount001):
    TestReporTGName = TestReporTG[TestReporTGGet]
    # print(TestReporTGName,"类型是:",type(TestReporTGName))
    # 特殊符号过滤
    TestReporTGNameFiltration = re.sub('['!"#$%&\'()*+,./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "",
                                       TestReporTGName)
    # 特殊\斜杆过滤
    TestReporTGNameFiltration01 = re.sub(r'\\', "", TestReporTGNameFiltration)
    # 获取响应体url
    ResponseUrl = "http://ms.***.*****:****/api/scenario/report/selectReportContent/" + TestReporTGNameFiltration01
    print("场景下节点地址:"+ResponseUrl)
    ResponseUrlResp = requests.get(url=ResponseUrl, headers=TestReportHeaders)
    ResponseUrlResp.encoding = "utf-8"
    #print(ResponseUrlResp.text)
    ResponseUrlRespGet = ResponseUrlResp.text
    # 获取每个流程节点名字,进行过滤
    TestResponseResp = re.findall('","name":"(.+?)",', ResponseUrlRespGet)
    TestResponseRespGet=str(TestResponseResp)
    TestResponseRespGetFiltration=re.sub('[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "", TestResponseRespGet)
    print("根节点处理报告名称:" + TestResponseRespGetFiltration)
    #获取根节点成功或失败
    RootNodeSucceed=re.findall('"pass":(.+?)}]}}}',ResponseUrlRespGet)
    RootNodeSucceedGet=str(RootNodeSucceed)
    print("根节点失败或成功状态标识:"+RootNodeSucceedGet)
    #定义局部变量,状态转译使用
    #if
    #获取根节点返参数据
    #ReturnParameter=re.findall('"vars":"(.+?)}]}}}',ResponseUrlRespGet)
    #ReturnParameter=re.findall('"data":(.+?)}}}',ResponseUrlRespGet)
    #ReturnParameterGet=str(ReturnParameter)
    # 获取根节点返参数据
    ReturnParameter=re.findall('"body":"{(.+?)]}}}',ResponseUrlRespGet)
    ReturnParameterGet=str(ReturnParameter)
    ReturnParameterGettest=re.sub(r'\\', "", ReturnParameterGet)
    print("过滤后的报文字段"+ReturnParameterGettest)
    #print("长度:" + len(ReturnParameterGet))
    Namenge_list = list(ReturnParameterGet)
    #print("长度:" + len(Namenge_list))
    is_contain_ch29 = '"error":0' in ResponseUrlRespGet
    # 获取根节点状态码
    # RootState=re.findall('"responseCode":"(.+?)","',ResponseUrlRespGet)
    # RootStateGet=str(RootState)
    # print("根节点状态码;"+RootStateGet)
    #获取投保单号
    InsureGain=re.findall('proposalNo:(.+?)nqueryCode',ResponseUrlRespGet)
    InsureGainGet=str(InsureGain)
    InsureGainGetDispose=re.sub('['!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "",InsureGainGet)
    InsureGainGetDispose01=re.sub(r'\\', "",InsureGainGetDispose)
    print("投保单号:",InsureGainGetDispose01)
    #获取报价单号
    PriceSheet=re.findall('quotationNo:(.+?)nquotationNo1:',ResponseUrlRespGet)
    PriceSheetGet=str(PriceSheet)
    PriceSheetGetDispose=re.sub('['!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "",PriceSheetGet)
    PriceSheetGetDispose01=re.sub(r'\\', "",PriceSheetGetDispose)
    print("报价单号:",PriceSheetGetDispose01)
    #获取orderMessageList
    orderMessageList=re.findall('"assertions":(.+?)"pass":true',ResponseUrlRespGet)
    orderMessageListGet=str(orderMessageList)
    print("获取orderMessageList:",orderMessageListGet)
    print("===============================================================================")
    #print("根节点返参:"+ReturnParameterGet)
    print("是否为:",is_contain_ch29)
    print("根节点的接口:"+ReportParticularsUrl)
    print("===============================================================================")

二、前期爬虫工作已完成后我们主要进行存储处理

1、读取前面自动生成表格,进行定位。

2、 is_contain_ch29 = '"error":0' in ResponseUrlRespGet 主要判断此节点执行结果为成功还是失败,这里可以通过ms里面设定成功值进行去判断。

# 读取原表格
workbook = xlrd.open_workbook("autoinsurancereport.xls")
# 获取原表格第一个sheet的名字(我这里只有1个sheet)
all_sheet = workbook.sheet_names()
first_sheet = workbook.sheet_by_name(all_sheet[0])
# 获取原表格第一个sheet写入数据的行数
rows = first_sheet.nrows
# 拷贝新的excel,并从rows行开始追加写入
new_workbook = copy(workbook)
new_sheet = new_workbook.get_sheet(0)
# 创建标题
new_sheet.write(0, 0, "场景")  # 场景
new_sheet.write(0, 1, "报告名称")  # 报告名称
new_sheet.write(0, 2, "接口")  # 接口
new_sheet.write(0, 3, "返回状态码")  # 返回状态码
new_sheet.write(0, 4, "投保单号")  # 投保单号
new_sheet.write(0, 5, "报价单号")  # 报价单号
new_sheet.write(0, 6, "状态")  # 报价单号
new_sheet.write(0, 7, "orderMessageList")  # 报价单号
new_sheet.write(0, 8, "路径")  # 路径
new_sheet.write(0, 9, "文档记录时间")  # 报价单号
# (行,列,值)
new_sheet.write(rows, 0, GetSceneNameGain)  # 场景
new_sheet.write(rows, 1, TestResponseRespGetFiltration)  # 报告名称
new_sheet.write(rows, 2, ReportParticularsUrl)  # 接口
new_sheet.write(rows, 3, GetStateGain)  # 返回状态码
new_sheet.write(rows, 4, InsureGainGetDispose01)  # 投保单号
new_sheet.write(rows, 5, PriceSheetGetDispose01)  # 报价单号
if is_contain_ch29 == True:
    new_sheet.write(rows, 6, "成功")  # 状态
    new_sheet.write(rows, 8, "  ")  # 返回报文
else:
    print("ReturnParameterGettest长度为:",len(ReturnParameterGettest))
    if len(ReturnParameterGettest)<=32000:
        new_sheet.write(rows, 8, ReturnParameterGettest)  # 返回报文
    else:
        new_sheet.write(rows, 8, "执行失败,报文较长,文档无法进行存储")  # 返回报文
    new_sheet.write(rows, 6, "失败或未执行")  # 状态
new_sheet.write(rows, 7, orderMessageListGet)  # orderMessageList
new_sheet.write(rows, 9, str(current_time))  # 当前系统时间
new_workbook.save("autoinsurancereport.xls")

上一篇《使用python爬虫MeterSphere平台执行报告篇(二)》

以上就是python爬虫MeterSphere平台执行报告使用实战的详细内容,更多关于python爬虫MeterSphere的资料请关注脚本之家其它相关文章!

相关文章

  • 简单掌握Python中glob模块查找文件路径的用法

    简单掌握Python中glob模块查找文件路径的用法

    glob模块遵循Unix的shell规则来匹配文件名进行文件查找,下面我们结合匹配相关的字符区间与通配符知识,来简单掌握Python中glob模块查找文件路径的用法
    2016-07-07
  • 对pandas进行数据预处理的实例讲解

    对pandas进行数据预处理的实例讲解

    下面小编就为大家分享一篇对pandas进行数据预处理的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python模拟练习题总结(附答案)

    python模拟练习题总结(附答案)

    这篇文章主要给大家介绍了关于python模拟练习题的相关资料,文中涉及质因数分解、开根变换、立方体拼接、日期计算、按位异或、停车场收费、整数操作、减法运算、相邻数之和、以及最长勾子序列的寻找,每题都有具体的输入输出示例和代码计算过程,需要的朋友可以参考下
    2024-11-11
  • Numpy数组拆分的实现步骤

    Numpy数组拆分的实现步骤

    本文详细介绍了NumPy库中的四个关键数组拆分函数:np.split、np.hsplit、np.vsplit和np.array_split,及如何根据索引位置进行等分或不等分拆分,感兴趣的可以了解一下
    2026-04-04
  • Python读取图片属性信息的实现方法

    Python读取图片属性信息的实现方法

    这篇文章介绍了利用Python读取图片属性信息的方法,读取的内容包括GPS 信息、图片分辨率、图片像素、设备商、拍摄设备等,有需要的朋友们可以参考借鉴。
    2016-09-09
  • 在Mac OS上部署Nginx和FastCGI以及Flask框架的教程

    在Mac OS上部署Nginx和FastCGI以及Flask框架的教程

    这篇文章主要介绍了在Mac OS上部署Nginx和FastCGI以及Flask框架的教程,Flask是Python下一个极简的web开放框架,需要的朋友可以参考下
    2015-05-05
  • python读写Excel表格的实例代码(简单实用)

    python读写Excel表格的实例代码(简单实用)

    这篇文章主要介绍了python读写Excel表格的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Python与人工神经网络:使用神经网络识别手写图像介绍

    Python与人工神经网络:使用神经网络识别手写图像介绍

    文章主要介绍什么是神经网络,感知机的概念和模型,以及新一代的S曲线神经元系统等相关内容,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Python NLP进阶之jieba中文分词的完整教程

    Python NLP进阶之jieba中文分词的完整教程

    在人工智能快速发展的今天,jieba中文分词已经成为每个AI从业者必须掌握的核心技能,本文将深入讲解自然语言处理中的jieba中文分词技术,希望对大家有所帮助
    2026-05-05
  • pandas如何实现两个dataframe相减

    pandas如何实现两个dataframe相减

    这篇文章主要介绍了pandas如何实现两个dataframe相减方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论