python爬蟲MeterSphere平臺執(zhí)行報告使用實戰(zhàn)
一、場景下API信息獲取
1、通過商業(yè)id已獲取到每個場景下id,我們通過場景id進(jìn)行訪問當(dāng)前場景下的API,每個場景下面都會包含很多api,這時我們通過遍歷進(jìn)行獲取。
2、獲取到數(shù)據(jù)還是通過正則進(jìn)行過濾處理。
#遍歷每個場景下API
for TestReporTGGet in range(0, TestReporTgCount001):
TestReporTGName = TestReporTG[TestReporTGGet]
# print(TestReporTGName,"類型是:",type(TestReporTGName))
# 特殊符號過濾
TestReporTGNameFiltration = re.sub('['!"#$%&\'()*+,./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "",
TestReporTGName)
# 特殊\斜桿過濾
TestReporTGNameFiltration01 = re.sub(r'\\', "", TestReporTGNameFiltration)
# 獲取響應(yīng)體url
ResponseUrl = "http://ms.***.*****:****/api/scenario/report/selectReportContent/" + TestReporTGNameFiltration01
print("場景下節(jié)點地址:"+ResponseUrl)
ResponseUrlResp = requests.get(url=ResponseUrl, headers=TestReportHeaders)
ResponseUrlResp.encoding = "utf-8"
#print(ResponseUrlResp.text)
ResponseUrlRespGet = ResponseUrlResp.text
# 獲取每個流程節(jié)點名字,進(jìn)行過濾
TestResponseResp = re.findall('","name":"(.+?)",', ResponseUrlRespGet)
TestResponseRespGet=str(TestResponseResp)
TestResponseRespGetFiltration=re.sub('[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "", TestResponseRespGet)
print("根節(jié)點處理報告名稱:" + TestResponseRespGetFiltration)
#獲取根節(jié)點成功或失敗
RootNodeSucceed=re.findall('"pass":(.+?)}]}}}',ResponseUrlRespGet)
RootNodeSucceedGet=str(RootNodeSucceed)
print("根節(jié)點失敗或成功狀態(tài)標(biāo)識:"+RootNodeSucceedGet)
#定義局部變量,狀態(tài)轉(zhuǎn)譯使用
#if
#獲取根節(jié)點返參數(shù)據(jù)
#ReturnParameter=re.findall('"vars":"(.+?)}]}}}',ResponseUrlRespGet)
#ReturnParameter=re.findall('"data":(.+?)}}}',ResponseUrlRespGet)
#ReturnParameterGet=str(ReturnParameter)
# 獲取根節(jié)點返參數(shù)據(jù)
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
# 獲取根節(jié)點狀態(tài)碼
# RootState=re.findall('"responseCode":"(.+?)","',ResponseUrlRespGet)
# RootStateGet=str(RootState)
# print("根節(jié)點狀態(tài)碼;"+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("根節(jié)點返參:"+ReturnParameterGet)
print("是否為:",is_contain_ch29)
print("根節(jié)點的接口:"+ReportParticularsUrl)
print("===============================================================================")二、前期爬蟲工作已完成后我們主要進(jìn)行存儲處理
1、讀取前面自動生成表格,進(jìn)行定位。
2、 is_contain_ch29 = '"error":0' in ResponseUrlRespGet 主要判斷此節(jié)點執(zhí)行結(jié)果為成功還是失敗,這里可以通過ms里面設(shè)定成功值進(jìn)行去判斷。
# 讀取原表格
workbook = xlrd.open_workbook("autoinsurancereport.xls")
# 獲取原表格第一個sheet的名字(我這里只有1個sheet)
all_sheet = workbook.sheet_names()
first_sheet = workbook.sheet_by_name(all_sheet[0])
# 獲取原表格第一個sheet寫入數(shù)據(jù)的行數(shù)
rows = first_sheet.nrows
# 拷貝新的excel,并從rows行開始追加寫入
new_workbook = copy(workbook)
new_sheet = new_workbook.get_sheet(0)
# 創(chuàng)建標(biāo)題
new_sheet.write(0, 0, "場景") # 場景
new_sheet.write(0, 1, "報告名稱") # 報告名稱
new_sheet.write(0, 2, "接口") # 接口
new_sheet.write(0, 3, "返回狀態(tài)碼") # 返回狀態(tài)碼
new_sheet.write(0, 4, "投保單號") # 投保單號
new_sheet.write(0, 5, "報價單號") # 報價單號
new_sheet.write(0, 6, "狀態(tài)") # 報價單號
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) # 返回狀態(tài)碼
new_sheet.write(rows, 4, InsureGainGetDispose01) # 投保單號
new_sheet.write(rows, 5, PriceSheetGetDispose01) # 報價單號
if is_contain_ch29 == True:
new_sheet.write(rows, 6, "成功") # 狀態(tài)
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, "執(zhí)行失敗,報文較長,文檔無法進(jìn)行存儲") # 返回報文
new_sheet.write(rows, 6, "失敗或未執(zhí)行") # 狀態(tài)
new_sheet.write(rows, 7, orderMessageListGet) # orderMessageList
new_sheet.write(rows, 9, str(current_time)) # 當(dāng)前系統(tǒng)時間
new_workbook.save("autoinsurancereport.xls")上一篇《使用python爬蟲MeterSphere平臺執(zhí)行報告篇(二)》
以上就是python爬蟲MeterSphere平臺執(zhí)行報告使用實戰(zhàn)的詳細(xì)內(nèi)容,更多關(guān)于python爬蟲MeterSphere的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
簡單掌握Python中g(shù)lob模塊查找文件路徑的用法
glob模塊遵循Unix的shell規(guī)則來匹配文件名進(jìn)行文件查找,下面我們結(jié)合匹配相關(guān)的字符區(qū)間與通配符知識,來簡單掌握Python中g(shù)lob模塊查找文件路徑的用法2016-07-07
對pandas進(jìn)行數(shù)據(jù)預(yù)處理的實例講解
下面小編就為大家分享一篇對pandas進(jìn)行數(shù)據(jù)預(yù)處理的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
這篇文章主要介紹了在Mac OS上部署Nginx和FastCGI以及Flask框架的教程,Flask是Python下一個極簡的web開放框架,需要的朋友可以參考下2015-05-05
Python與人工神經(jīng)網(wǎng)絡(luò):使用神經(jīng)網(wǎng)絡(luò)識別手寫圖像介紹
文章主要介紹什么是神經(jīng)網(wǎng)絡(luò),感知機的概念和模型,以及新一代的S曲線神經(jīng)元系統(tǒng)等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12
Python NLP進(jìn)階之jieba中文分詞的完整教程
在人工智能快速發(fā)展的今天,jieba中文分詞已經(jīng)成為每個AI從業(yè)者必須掌握的核心技能,本文將深入講解自然語言處理中的jieba中文分詞技術(shù),希望對大家有所幫助2026-05-05

