python爬蟲MeterSphere平臺(tái)執(zhí)行報(bào)告使用實(shí)戰(zhàn)
一、場(chǎng)景下API信息獲取
1、通過商業(yè)id已獲取到每個(gè)場(chǎng)景下id,我們通過場(chǎng)景id進(jìn)行訪問當(dāng)前場(chǎng)景下的API,每個(gè)場(chǎng)景下面都會(huì)包含很多api,這時(shí)我們通過遍歷進(jìn)行獲取。
2、獲取到數(shù)據(jù)還是通過正則進(jìn)行過濾處理。
#遍歷每個(gè)場(chǎng)景下API for TestReporTGGet in range(0, TestReporTgCount001): TestReporTGName = TestReporTG[TestReporTGGet] # print(TestReporTGName,"類型是:",type(TestReporTGName)) # 特殊符號(hào)過濾 TestReporTGNameFiltration = re.sub('['!"#$%&\'()*+,./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "", TestReporTGName) # 特殊\斜桿過濾 TestReporTGNameFiltration01 = re.sub(r'\\', "", TestReporTGNameFiltration) # 獲取響應(yīng)體url ResponseUrl = "http://ms.***.*****:****/api/scenario/report/selectReportContent/" + TestReporTGNameFiltration01 print("場(chǎng)景下節(jié)點(diǎn)地址:"+ResponseUrl) ResponseUrlResp = requests.get(url=ResponseUrl, headers=TestReportHeaders) ResponseUrlResp.encoding = "utf-8" #print(ResponseUrlResp.text) ResponseUrlRespGet = ResponseUrlResp.text # 獲取每個(gè)流程節(jié)點(diǎn)名字,進(jìn)行過濾 TestResponseResp = re.findall('","name":"(.+?)",', ResponseUrlRespGet) TestResponseRespGet=str(TestResponseResp) TestResponseRespGetFiltration=re.sub('[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "", TestResponseRespGet) print("根節(jié)點(diǎn)處理報(bào)告名稱:" + TestResponseRespGetFiltration) #獲取根節(jié)點(diǎn)成功或失敗 RootNodeSucceed=re.findall('"pass":(.+?)}]}}}',ResponseUrlRespGet) RootNodeSucceedGet=str(RootNodeSucceed) print("根節(jié)點(diǎn)失敗或成功狀態(tài)標(biāo)識(shí):"+RootNodeSucceedGet) #定義局部變量,狀態(tài)轉(zhuǎn)譯使用 #if #獲取根節(jié)點(diǎn)返參數(shù)據(jù) #ReturnParameter=re.findall('"vars":"(.+?)}]}}}',ResponseUrlRespGet) #ReturnParameter=re.findall('"data":(.+?)}}}',ResponseUrlRespGet) #ReturnParameterGet=str(ReturnParameter) # 獲取根節(jié)點(diǎn)返參數(shù)據(jù) ReturnParameter=re.findall('"body":"{(.+?)]}}}',ResponseUrlRespGet) ReturnParameterGet=str(ReturnParameter) ReturnParameterGettest=re.sub(r'\\', "", ReturnParameterGet) print("過濾后的報(bào)文字段"+ReturnParameterGettest) #print("長(zhǎng)度:" + len(ReturnParameterGet)) Namenge_list = list(ReturnParameterGet) #print("長(zhǎng)度:" + len(Namenge_list)) is_contain_ch29 = '"error":0' in ResponseUrlRespGet # 獲取根節(jié)點(diǎn)狀態(tài)碼 # RootState=re.findall('"responseCode":"(.+?)","',ResponseUrlRespGet) # RootStateGet=str(RootState) # print("根節(jié)點(diǎn)狀態(tài)碼;"+RootStateGet) #獲取投保單號(hào) InsureGain=re.findall('proposalNo:(.+?)nqueryCode',ResponseUrlRespGet) InsureGainGet=str(InsureGain) InsureGainGetDispose=re.sub('['!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "",InsureGainGet) InsureGainGetDispose01=re.sub(r'\\', "",InsureGainGetDispose) print("投保單號(hào):",InsureGainGetDispose01) #獲取報(bào)價(jià)單號(hào) PriceSheet=re.findall('quotationNo:(.+?)nquotationNo1:',ResponseUrlRespGet) PriceSheetGet=str(PriceSheet) PriceSheetGetDispose=re.sub('['!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "",PriceSheetGet) PriceSheetGetDispose01=re.sub(r'\\', "",PriceSheetGetDispose) print("報(bào)價(jià)單號(hào):",PriceSheetGetDispose01) #獲取orderMessageList orderMessageList=re.findall('"assertions":(.+?)"pass":true',ResponseUrlRespGet) orderMessageListGet=str(orderMessageList) print("獲取orderMessageList:",orderMessageListGet) print("===============================================================================") #print("根節(jié)點(diǎn)返參:"+ReturnParameterGet) print("是否為:",is_contain_ch29) print("根節(jié)點(diǎn)的接口:"+ReportParticularsUrl) print("===============================================================================")
二、前期爬蟲工作已完成后我們主要進(jìn)行存儲(chǔ)處理
1、讀取前面自動(dòng)生成表格,進(jìn)行定位。
2、 is_contain_ch29 = '"error":0' in ResponseUrlRespGet 主要判斷此節(jié)點(diǎn)執(zhí)行結(jié)果為成功還是失敗,這里可以通過ms里面設(shè)定成功值進(jìn)行去判斷。
# 讀取原表格 workbook = xlrd.open_workbook("autoinsurancereport.xls") # 獲取原表格第一個(gè)sheet的名字(我這里只有1個(gè)sheet) all_sheet = workbook.sheet_names() first_sheet = workbook.sheet_by_name(all_sheet[0]) # 獲取原表格第一個(gè)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, "場(chǎng)景") # 場(chǎng)景 new_sheet.write(0, 1, "報(bào)告名稱") # 報(bào)告名稱 new_sheet.write(0, 2, "接口") # 接口 new_sheet.write(0, 3, "返回狀態(tài)碼") # 返回狀態(tài)碼 new_sheet.write(0, 4, "投保單號(hào)") # 投保單號(hào) new_sheet.write(0, 5, "報(bào)價(jià)單號(hào)") # 報(bào)價(jià)單號(hào) new_sheet.write(0, 6, "狀態(tài)") # 報(bào)價(jià)單號(hào) new_sheet.write(0, 7, "orderMessageList") # 報(bào)價(jià)單號(hào) new_sheet.write(0, 8, "路徑") # 路徑 new_sheet.write(0, 9, "文檔記錄時(shí)間") # 報(bào)價(jià)單號(hào) # (行,列,值) new_sheet.write(rows, 0, GetSceneNameGain) # 場(chǎng)景 new_sheet.write(rows, 1, TestResponseRespGetFiltration) # 報(bào)告名稱 new_sheet.write(rows, 2, ReportParticularsUrl) # 接口 new_sheet.write(rows, 3, GetStateGain) # 返回狀態(tài)碼 new_sheet.write(rows, 4, InsureGainGetDispose01) # 投保單號(hào) new_sheet.write(rows, 5, PriceSheetGetDispose01) # 報(bào)價(jià)單號(hào) if is_contain_ch29 == True: new_sheet.write(rows, 6, "成功") # 狀態(tài) new_sheet.write(rows, 8, " ") # 返回報(bào)文 else: print("ReturnParameterGettest長(zhǎng)度為:",len(ReturnParameterGettest)) if len(ReturnParameterGettest)<=32000: new_sheet.write(rows, 8, ReturnParameterGettest) # 返回報(bào)文 else: new_sheet.write(rows, 8, "執(zhí)行失敗,報(bào)文較長(zhǎng),文檔無法進(jìn)行存儲(chǔ)") # 返回報(bào)文 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)時(shí)間 new_workbook.save("autoinsurancereport.xls")
上一篇《使用python爬蟲MeterSphere平臺(tái)執(zhí)行報(bào)告篇(二)》
以上就是python爬蟲MeterSphere平臺(tái)執(zhí)行報(bào)告使用實(shí)戰(zhàn)的詳細(xì)內(nèi)容,更多關(guān)于python爬蟲MeterSphere的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 模擬瀏覽器的Python爬蟲工具全面深入探索
- Scrapy基于Python構(gòu)建強(qiáng)大網(wǎng)絡(luò)爬蟲框架實(shí)例探究
- Python爬蟲lxml庫(kù)處理XML和HTML文檔
- Python爬蟲之重放攻擊原理實(shí)例詳解
- Python爬蟲庫(kù)requests-html進(jìn)行HTTP請(qǐng)求HTML解析等高級(jí)功能應(yīng)用
- python爬蟲MeterSphere平臺(tái)執(zhí)行報(bào)告使用進(jìn)階
- python爬蟲MeterSphere平臺(tái)執(zhí)行報(bào)告流程解析
- Python爬蟲與防反爬蟲策略從入門到實(shí)戰(zhàn)
相關(guān)文章
淺談Django自定義模板標(biāo)簽template_tags的用處
這篇文章主要介紹了淺談Django自定義模板標(biāo)簽template_tags的用處,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12python如何實(shí)時(shí)獲取tcpdump輸出
這篇文章主要介紹了python如何實(shí)時(shí)獲取tcpdump輸出,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-09-09對(duì)pandas處理json數(shù)據(jù)的方法詳解
今天小編就為大家分享一篇對(duì)pandas處理json數(shù)據(jù)的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02Python大數(shù)據(jù)之網(wǎng)絡(luò)爬蟲的post請(qǐng)求、get請(qǐng)求區(qū)別實(shí)例分析
這篇文章主要介紹了Python大數(shù)據(jù)之網(wǎng)絡(luò)爬蟲的post請(qǐng)求、get請(qǐng)求區(qū)別,結(jié)合具體實(shí)例形式分析了Python網(wǎng)頁(yè)爬蟲post請(qǐng)求與get請(qǐng)求相關(guān)使用技巧,需要的朋友可以參考下2019-11-11Python實(shí)現(xiàn)CART決策樹算法及詳細(xì)注釋
CART算法是一種樹構(gòu)建算法,既可以用于分類任務(wù),又可以用于回歸,本文僅討論基本的CART分類決策樹構(gòu)建,不討論回歸樹和剪枝等問題,感興趣的朋友跟隨小編一起看看吧2021-10-10Python自動(dòng)化神器Playwright的用法詳解
python Playwright 是一個(gè) Python 庫(kù),它提供了一個(gè)高級(jí) API,用于自動(dòng)化 Web 瀏覽器,它支持 chrome、firefox 和 webkit 瀏覽器,并提供了一種簡(jiǎn)單易用的方法來模擬用戶在瀏覽器中的行為,本文小編將詳細(xì)的給大家介紹一下Python自動(dòng)化神器Playwright的用法2025-04-04python實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天早下班
這篇文章主要為大家介紹了python實(shí)現(xiàn)釘釘機(jī)器人自動(dòng)打卡天天下早班實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06