石家莊郵電職業技術學院計算機系 張 昱 高凌燕 房瑜輝
RPA與AI技術結合發展迅速,在財務、金融等領域大型企業逐漸落地應用,因前期研發成本較高影響其在個人生活領域推廣。為此,本文以藝賽旗RPA為平臺,設計開發了個人網銀自助查詢機器人,實現了個人網銀賬戶自動登錄、余額查詢、數據匯總分析、發送郵件等便捷功能,解決了忙碌的上班族、操作不便的老年人等群體的個性化需求。在不需要人工操作的情況下,可在預設好的時間內自動登錄查詢個人網銀賬戶信息,為個人股票、手機余額、水電暖等生活自助服務流程自動化提供參考。
RPA是機器人流程自動化的簡稱,它建立在人工智能和自動化技術的基礎之上,是一種新型軟件技術。RPA工作在Windows操作系統上,自動識別登錄應用程序接口,完成預設好的流程。RPA技術將具有明確規則的常規電腦操作按設定流程自動執行,例如登錄網站、應用系統、讀取郵件、生成數據文件和報告等,并可以跨多個應用系統。自動實現了以往只有人類才能完成的電腦操作,把人們從讀取、處理日常海量信息的重復工作中解放出來,提高處理效率和質量,降低勞動成本支出。
RPA在國外出現較早,尤其在金融、保險行業應用極為廣泛,如美亞保險、好事達等大型集團企業,它們不僅全面推廣使用RPA,還擁有自己獨立的研發團隊。我國在2017年將人工智能技術寫入政府工作報告中。此后,逐漸有國內公司應用RPA,如金蝶、畢馬威等利用財務機器人統計分析數據。經過3年多的市場沉淀,RPA技術已經得到較大范圍的應用,不僅在傳統的財稅、金融行業,還可以在人力資源、速遞運輸等行業的業務流程上實現智能自動化。藝賽旗、UiBot、達觀等本土公司也逐步誕生或將發展重心轉移到RPA的研發與推廣上來,并發展迅速。
本文選用藝賽旗RPA為開發平臺,設計了程序軟件,可模擬人的操作與銀行網站、Excel軟件、郵件系統交互數據信息。針對個人金融業務操作繁瑣、效率低下,風險高的市場痛點,迎合老年人群、殘障人群和重視時間管理的上班族三類群體的市場訴求,設計開發了個人網銀賬戶余額查詢機器人,通過自動輸入賬號、密碼和驗證碼進行登錄,選定指定范圍日期進行查詢,拾取數據,對數據處理匯總至Excel表并發送至指定郵箱等一系列的流程自動化操作,進行機器人流程自動化在個人應用領域落地的探索和研究。
該軟件由網銀登錄、數據檢索、數據處理和郵件發送4個功能模塊組成,每個模塊又由若干項子功能組成,如圖1所示。

圖1 賬戶余額查詢總體功能結構圖
軟件設計采用結構化布局方法,根據需求將功能拆分為3個模塊,分別對應3個子流程,如圖2所示。

圖2 子流程分解圖
登錄網銀賬戶是查詢機器人設計的第一步,也是最關鍵的環節。首先自動打開銀行網址,輸入賬號、密碼;循環輸入驗證碼并判斷輸入是否符合規定;登錄后自動判斷是否登錄成功,否則返回重新登錄。
(1)自動輸入網銀賬號密碼。用“網站”組件打開網址“https://mybank.icbc.com.cn/”(以工商銀行個人網銀為例);然后,用“鼠標點擊”組件,使光標定位于賬號文本框處,用“模擬按鍵”組件模擬真實的鍵盤操作傳入參數輸入賬號;再次使用“鼠標點擊”組件使光標定位于密碼框處,并用專用的輸入網銀密碼組件以變量的形式輸入網銀密碼,流程設計如圖3所示。
(2)驗證碼的循環識別及輸入。用“鼠標點擊”組件點擊驗證碼圖片,“截圖”獲取驗證碼圖片,返回圖片路徑后,用“獲取OCR文本”組件進行圖文的識別轉換,并進行“去空格”操作。邏輯判斷長度是否是4位,如果是,則進行驗證碼的輸入,登錄,并終止循環,進行下一步流程;如果不是4位,則用消息框提示“位數不正確”,進行下一次的重新識別判斷,直到驗證碼位數判斷是4位為止。
(3)登錄成功判斷。使用“while循環”與“try異常”相結合,在點擊登錄按鈕后,跳轉到“我的網銀”頁面,捕捉到固定的標志,則登錄成功,否則作為異常重新拾取驗證碼進行判斷輸入和點擊登錄,直到能成功登錄為止。

圖3 賬戶密碼流程設計展示

圖4 數據查詢流程設計展示
登錄成功后,鼠標移動點擊進入交易明細頁面,選擇指定的日期范圍進行交易明細的查詢,拾取數據并導出至Excel表,再對數據進行處理,包括追加合并數據,去重,排序,設置格式等,最終形成一份可供瀏覽的Excel交易明細文件。
選用時間戳stamp進行數據文件的動態命名,引入Python第三方OS庫,進行文件名和路徑的完整拼接。對查詢出來的數據進行Web表格的拾取,以DataFrame類型的數據導出至創建的Excel表中,流程設計如圖4所示。
使用“發送郵件”組件將Excel數據表作為附件發送。獲取到電子郵箱第三方登錄的授權碼,服務器,窗口和正確的ssl之后,用傳參的方式將發送者、接收者、標題、正文和附件信息設置在相應位置。
窗口標題和網址每次點擊打開都會發生變化,這會對流程的執行判斷產生影響。對此,在組件設計過程中做容錯處理。找到屬性值一欄,保留其Sub(包含方式)每次拾取中相同的部分,對“窗口標題”組件刪除變化的部分;“網址”組件將變化的部分用通配符“*”代替。
每執行一個組件都需要等待一定時間,合理的對等待時間進行分配從而整體優化程序運行時間十分必要。根據PC運行環境的不同,恰當的調整打開網址,跳轉網址的等待時長,對單個組件設置合適的前置延時或后置延時。在“截圖”組件后讓它適當的等待500ms,以防止因為截圖過快導致出現圖片重復。在“模擬按鍵”組件輸入文本時,適當的根據文本的長度來控制它的后置延時,以保證輸入文本的完整性。

圖5 鼠標偏移具體實現頁面
在使用“鼠標點擊”組件定位光標時,拾取元素在網頁中會動態變化,給拾取判斷帶來困難。可以通過拾取固定元素再設置偏移量的方案來解決。如圖5所示,要把光標定位于賬號、密碼文本框,可拾取左側標注的紅框內的小圖標,在X軸的正向偏移50px;點擊刷新驗證碼時,則是通過拾取上側的“忘記密碼”,然后在Y軸設置正向偏移30px,以確保拾取頁面元素的成功率。
結束語:本文以is-RPA為開發平臺,以Python為腳本語言,使用組件和代碼相結合的方式,開發了個人網銀余額自助查詢軟件機器人,實現了網頁登錄、驗證碼識別、Web數據查詢、Excel數據處理與分析、郵件發送等多個功能。在軟件設計的關鍵技術中,運用了異常處理和容錯機制,以保證流程的正常運行。充分利用了RPA技術跨系統、多任務自動化操作的特點,在控制平臺部署后,可實現一天一次或多次自動查詢網銀賬戶,給使用者帶來便利。為個人股票、手機余額、水電暖等生活自助服務流程自動化設計提供參考。隨著人工智能和自動化技術的進一步發展,RPA技術在人們的生活中一定會發揮更重要的作用。