(16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
文章目錄
- 一、 實驗平臺——UiBot
- 二、 項目功能與實現(xiàn)
- 1、項目介紹
- 2、 項目流程
- (1) 全局變量設置
- (2) 頁面登錄和跳轉
- (3) Excel記錄項目名稱和個數(shù)
- (4) 搜索并爬取第i個實訓項目
- (5) 新建工作表重命名寫入,刪除無效列
- (6) Excel高亮和統(tǒng)計
- (7) 循環(huán)執(zhí)行(4)-(6)
- (8) 關閉頁面和表格
- 三、 問題解決
- 1、 全局變量
- 2、 插件配置
- 3、 數(shù)據(jù)抓取后獲得純字符串
- 4、 數(shù)據(jù)抓取不完整
- 5、 連接線形狀
一、 實驗平臺——UiBot
官網(wǎng)下載鏈接:https://www.uibot.com.cn/
UiBot是一家機器人流程自動化服務平臺,其產(chǎn)品包含創(chuàng)造者、勞動者、指揮官三大模塊,用戶可通過平臺一鍵錄制流程并自動生成機器人,支持可視化編程與專業(yè)模式、瀏覽器、桌面、SAP等多種控件抓取以及C、Lua、Python、.Net 擴展插件及第三方SDK接入,還可對業(yè)務與權限進行實時監(jiān)控調整。
UiBot產(chǎn)品主要包含創(chuàng)造者、勞動者、指揮官、魔法師四大模塊,為機器人的生產(chǎn)、執(zhí)行、分配、智能化提供相應的工具和平臺。
- Creator
創(chuàng)造者即機器人開發(fā)工具,用于搭建流程自動化機器人。
- Worker
勞動者即機器人運行工具,用于運行搭建好的機器人。
- Commander
指揮官即控制中心,用于部署與管理多個機器人。
- Mage
魔法師即AI能力平臺,為機器人提供執(zhí)行流程自動化所需的各種AI能力。
二、 項目功能與實現(xiàn)
1、項目介紹
機器人的主要目標是在頭歌頁面上自動獲取學生實訓提交情況。
機器人將打開頭歌頁面,點擊我的頭像查看課程,進入到《XX課程》。點擊進入已截止的實訓項目,我的賬號可查看到各位同學的實訓通關情況。
為了實現(xiàn)對項目列表進行遍歷,機器人在已截止頁面抓取所有項目名稱,由于頁面過長無法智能識別并抓取,且提取的數(shù)據(jù)無法直接轉換為字符串。因此,將所有實訓項目寫入Excel后再讀出,在網(wǎng)頁搜索欄中依次進行搜索,以遍歷所有實訓。
在實訓詳情中將爬取所有同學的提交信息,輸出到Excel表格中。一般而言,學生在實訓項目截至后應當按時通關,對于異常提交情況,如遲交通關、未通關、未開啟,在Excel中用不同顏色高亮展示,處理過程保留各種異常情況的學生數(shù)。
最后,將統(tǒng)計結果寫入Excel單元格,抓住未做作業(yè)的那一批同學。
? 最后形成的Excel效果如圖所示。
2、 項目流程
(1) 全局變量設置
為了實現(xiàn)在流程圖中的數(shù)據(jù)共享,本項目設置了如下的流程圖變量,即全局變量。在運行完整項目時將創(chuàng)建并共享。關于全局變量的設置,可以參考報告中的問題解決-全局變量板塊。
-
hWeb:標識機器人所打開的頁面。在啟動瀏覽器時產(chǎn)生,通過hWeb實現(xiàn)打開、關閉、切換瀏覽器及其標簽頁。
-
TrainName:實訓名稱,string型。記錄所有已截止的實訓項目的名稱,采用數(shù)據(jù)抓取的方式獲得。
-
TrainNum:實訓個數(shù),int型。即TrainName的長度,表示共有多少個已截止的實訓需要進行數(shù)據(jù)采集。
-
ExcelProject:Excel表,用于記錄所有實訓名。由于抓取到的實訓名稱無法直接轉為字符串,通過Excel表轉換,并實現(xiàn)在搜索框中依次搜索內容。
-
Name:代表當前遍歷到的實訓名稱,string型。從ExcelProject中依次獲取,以作為搜索框中的輸入。
-
CurProject:標記當前遍歷到第幾個實訓,int型。在每次進入流程循環(huán)時+1,作為從ExcelProject獲取Name的下標。
-
TrainInfo:學生們作業(yè)提交的表格信息。從每個實訓的作業(yè)列表中由數(shù)據(jù)抓取得到。
-
ExcelProject:Excel表,用于記錄所有實訓詳情。抓取到的原始TrainInfo將存儲到該Excel表中,并對表進行新建表、重命名表名、寫入?yún)^(qū)域、刪除列、高亮單元格等操作,對每個實訓項目新建一個對應名稱的工作表,處理數(shù)據(jù)并高亮異常提交情況。
(2) 頁面登錄和跳轉
在該流程中,機器人主要實現(xiàn)以下幾個步驟
- 進入頭歌點擊我的頭像
機器人將自動打開瀏覽器,訪問網(wǎng)址https://www.educoder.net/,由于在本機電腦上已經(jīng)自動登錄,所以無需再進行登錄操作。點擊我的頭像可直接進入到我的教學課堂內容。
- 選擇課程
選擇《大學計算機基礎》
- 查看已截止項目
點擊課程后會默認進入實訓作業(yè)的頁面,查看已截止的項目。
(3) Excel記錄項目名稱和個數(shù)
由于之后希望遍歷每一個實訓項目并爬取數(shù)據(jù),于是在該流程塊中,希望獲取全部實訓名稱,以便之后依次進入對應的實訓頁面。但是,直接從網(wǎng)頁爬取的數(shù)據(jù)不是純字符串,解決這個問題的方法見問題解決的數(shù)據(jù)抓取后獲得純字符串。
? 將所有實訓名自動保存到實訓詳情.xlsx。
(4) 搜索并爬取第i個實訓項目
CurProject標識了當前遍歷到第幾個實訓項目,初始值為0。這部分流程涉及到遍歷,在流程塊外部實現(xiàn),流程塊內實現(xiàn)該循環(huán)的具體內容,即進入第i個實訓項目,爬取學生項目完成情況。涉及到以下幾個步驟:
- 獲取當前實訓項目名
CurProject代表當前實訓項目的序號,進入該板塊后+1,即從第1個項目開始遍歷。
讀取實訓詳情.xlsx的Sheet1工作表中的A&CurProject單元格的數(shù)據(jù),即實訓項目名稱,如第一個項目為馮諾伊xxxx。
- 搜索項目并進入作業(yè)列表
在頁面的搜索框中輸入項目名稱后回車,鼠標點擊板塊,進入該項目的作業(yè)列表
- 抓取頁面數(shù)據(jù)
抓取頁面數(shù)據(jù),由于頁面為表格形式,因此可以快速抓取。設置翻頁頁數(shù),由于每個實訓項目均為同樣的學生參與,因此翻頁數(shù)固定為4。在這里可能會出現(xiàn)數(shù)據(jù)抓取不完整的問題,解決方案可見問題解決的數(shù)據(jù)抓取不完整。
同時,為了打開頁面時未處于第1頁,可以設置頁面滾動條,滑到頁面選擇,選擇第1頁后再爬取數(shù)據(jù)。這個操作的增加即可以防止頁面錯誤,也可以防止數(shù)據(jù)抓取不完整的問題。
(5) 新建工作表重命名寫入,刪除無效列
? 對于不同的實訓任務,將在Excel中用不同的工作表進行存儲,表名即為實訓名,因此需要進行以下幾個步驟。
- 創(chuàng)建新的工作表并重命名
- 寫入數(shù)據(jù)
- 刪除無用列
此時會發(fā)現(xiàn)有許多列的數(shù)據(jù)并沒有起到作用,因此設置刪去這些列。
(6) Excel高亮和統(tǒng)計
? 由于學生的提交情況分為按時通關、遲交通關、未通關和未開啟四種情形,其中后三種被看作是異常情況,需要進行記錄和統(tǒng)計,分別用Late、Unsub和Unstart來記錄。
當數(shù)據(jù)完成寫入后,遍歷每一行數(shù)據(jù),查看每位同學對應的作業(yè)狀態(tài)。根據(jù)作業(yè)狀態(tài)(IsSubmit)進行條件判斷,若為異常狀態(tài),則用對應單元格顏色和文字顏色高亮展示,并將對應變量的數(shù)值+1。
最后,在該工作表的J1:K4的位置分別列出各項異常情況的統(tǒng)計值。
由于要進入下一次循環(huán),因此我們需要關閉當前標簽頁(即關閉第i個項目的提交詳情界面)。
(7) 循環(huán)執(zhí)行(4)-(6)
循環(huán)條件:CurProject>=TrainNum。其中CurProject代表當前遍歷到的項目序號,TrainNum代表實訓項目總數(shù)。
即對于每一個項目,都會進行搜索操作,搜索得到結果后,自動點擊進入該實訓項目,爬取學生的提交情況。在Excel中創(chuàng)建新的工作表,命名為該實訓項目名稱,并寫入數(shù)據(jù)、刪除無用數(shù)據(jù),對異常情形進行高亮和統(tǒng)計操作,可視化展示。
(8) 關閉頁面和表格
在實訓項目全部遍歷完畢后,關閉標簽頁和表格,流程結束。
三、 問題解決
1、 全局變量
問題:
? 在流程圖中,各個板塊之間實現(xiàn)自己的主要功能,但是存在一些數(shù)據(jù)交互和共用的功能,如果在每個流程塊輸出部分變量,在下一個流程塊接接收的話,變量傳遞會變得非常繁瑣。觀看舊版教學視頻只發(fā)現(xiàn)了這種傳遞方式。【參考https://forum.uibot.com.cn/thread-4215.htm】
解決方案:
? 但是新版的開發(fā)者指南里提供了全局變量、循環(huán)邏輯和流程塊的一些相關操作。【參考初級開發(fā)者指南-流程和任務管理】,于是可以設置全局變量,板塊內的操作會為變量附上新的值,方便流程間的數(shù)據(jù)傳遞。
2、 插件配置
問題:
? 在項目流程的頁面登錄和跳轉的步驟中,會發(fā)現(xiàn)設置用Chrome瀏覽器打開指定鏈接https://www.educoder.net/時,機器人能實現(xiàn)打開Chrome,但無法正確跳轉頁面。
解決方案:
? 需要安裝Chrome插件,在首頁-工具-Chrome擴展中安裝,并在瀏覽器設置-擴展程序中啟用擴展程序。其他瀏覽器也可以對應安裝擴展程序。
參考鏈接:https://forum.uibot.com.cn/thread-2098.htm
3、 數(shù)據(jù)抓取后獲得純字符串
問題:
? 在項目流程的Excel記錄項目名稱和個數(shù)的步驟中,希望獲取各實訓項目的名稱字符串,以實現(xiàn)遍歷點擊。但是會發(fā)現(xiàn)數(shù)據(jù)抓取的結果為列表,而每一項的輸出也是一個列表。
? 爬取得到的數(shù)據(jù)如下圖所示,并不是純字符串,不符合預期。
解決方案:
? 我想到的方案是先將數(shù)據(jù)寫入Excel。再對Excel內容進行讀取。此時讀取得到的字符串為純字符串,而不是一個列表形式。
4、 數(shù)據(jù)抓取不完整
問題:
? 在項目流程的爬取第i個實訓項目的步驟中抓取數(shù)據(jù)時,有時會發(fā)現(xiàn)數(shù)據(jù)抓取不完全。存入Excel表后如下圖所示。
解決方案:
出現(xiàn)這種問題很大可能是頁面延遲問題,數(shù)據(jù)未來得及加載就已經(jīng)進入到下一個步驟,解決的關鍵在于設置延遲。可以通過以下方案解決
- 為前一個動作增加延遲
將前一個動作的執(zhí)行后延時時間增加,可設置為800-1000。
- 設置延時
插入延時命令。設置動作運行完的等待時間。
5、 連接線形狀
問題:
? 在流程圖繪制過程中,發(fā)現(xiàn)連接線常常很混亂,無法按照想要的方式進行連接。
解決方案:
? 按住Ctrl+鼠標左鍵可以在連接線上加點,拖動點使得連接線合理。
總結
以上是生活随笔為你收集整理的(16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 遇到问题:从采购申请 复制 建立分类的采
- 下一篇: 微信JSAPI支付V2版本(PHP)