最近看了一本書,接觸了一個(gè)國內(nèi)的RPA產(chǎn)品—來也UiBot↓
RPA:Robotic process automation(機(jī)器人流程自動(dòng)化)
周末根據(jù)最近頻繁接到的需求(批量查詢工商信息并截圖)上手試寫了一下。
PS..學(xué)軟件最好還是通過官方手冊+視頻+論壇的方式..用紙質(zhì)書這種載體來學(xué)軟件操作著實(shí)有點(diǎn)難受..
這次抽一個(gè)小伙伴把書送了,規(guī)則在最后。
先看效果吧:
10個(gè)公司的抓取工商信息+截圖總共花了2分10秒,100個(gè)公司大概是22分鐘(受網(wǎng)速影響),效率不算特別高,但是勝在編寫和調(diào)試簡單而且免費(fèi)(效率最高的肯定還是買接口)。
【茶瓜子的休閑館】后臺(tái)回復(fù)[RPA]獲取該示例腳本及底稿下載地址。
需求:
把底稿中的待核查公司在天眼查中全部查好,把相應(yīng)的“完整公司名”,“法定代表人”,“成立時(shí)間”,“地址”填入Excel中,之后在天眼查網(wǎng)站截圖并保存下來作為附件,再鏈接到底稿中,如下圖↓
由于來也的Uibot對(duì)Excel對(duì)象、方法的支持一般,很多細(xì)節(jié)沒有VBA強(qiáng)大(畢竟親生的),但Ub可以直接執(zhí)行VBA代碼,因此我用了接力的方式,也就是RPA做他擅長的,比如跨平臺(tái)操作(從網(wǎng)頁上搬數(shù)據(jù)到Excel中),純Excel中的操作全部用VBA來實(shí)現(xiàn),最后在Ub中調(diào)用VBA代碼。
如何使用這個(gè)腳本及如何編寫腳本的技術(shù)篇在最下面↓
還是插一樓啰嗦啰嗦
01
先說一下哪些人適合買這本書讀讀吧:
首先我可以很明確的說,學(xué)一個(gè)軟件以及操作,紙質(zhì)書籍絕不是最好的載體,所以如果你只是想學(xué)這個(gè)UiBot軟件,那么可以不用買了,下載了軟件去網(wǎng)上看實(shí)戰(zhàn)的視頻或者從官方的教學(xué)視頻從頭看起都可以。
如果你想學(xué)審計(jì)或者IT審計(jì)..那也不用考慮了,這跟IT審計(jì)甚至都不搭邊.. 而且這個(gè)書內(nèi)的審計(jì)實(shí)戰(zhàn)案例,其實(shí)都只舉了非常簡單的場景,或者說只是拿比較簡單的審計(jì)程序來舉例,甚至很多場景都是完全在Office之內(nèi)的自動(dòng)化實(shí)現(xiàn)(對(duì)于這部分我覺得你去學(xué)學(xué)VBA更好),論兼容和穩(wěn)定性,在親兒子面前在座的都是..
我認(rèn)為適合買這本書讀讀的是沒有學(xué)過,也不太想花很多時(shí)間或者沒什么興趣去學(xué)一門編程語言(比如Python、VBA)的需要做底稿的審計(jì)員(經(jīng)理以下)。
書內(nèi)的業(yè)務(wù)場景很簡單,作為從業(yè)人員一眼能看出他要實(shí)現(xiàn)的需求,也就是他要做什么事情,再看他如何通過這個(gè)RPA工具來實(shí)現(xiàn),能了解這個(gè)工具的能力和邊界。
當(dāng)你知道了確切的目的以及工具的能力,那么很大概率你就能用這個(gè)工具來解決需求。
由于UiBot的可視化界面全部都是用的中文,而且他把很多的輪子都造好了,比如讀寫Excel和Word、解析PDF、填寫/抓取網(wǎng)頁元素、下載網(wǎng)絡(luò)文件、操作文件和文件夾,甚至操作SQL都寫好了,應(yīng)付一般的辦公場景都?jí)蛄?。你只需要把操作步驟一個(gè)一個(gè)拖進(jìn)來,調(diào)整參數(shù)就行。
可以看看這次我發(fā)的查工商并截圖腳本↓
雖然門檻低,但還是要有一些編程的思維,比如對(duì)象、方法、變量、遍歷循環(huán)、數(shù)組、序列,知道了這些概念以及應(yīng)用方式,看懂這個(gè)腳本完全不費(fèi)勁(只要你有VBA基礎(chǔ),用這個(gè)就是0門檻)。
相對(duì)于Python、VBA學(xué)習(xí)門檻低了很多(其實(shí)這兩個(gè)也不難學(xué)..相對(duì)于CPA6門來說..),Python雖然有非常強(qiáng)大的庫,但是作為一門語言,要學(xué)習(xí)基本語法,要配置環(huán)境,要學(xué)習(xí)各種庫的用法;VBA作為一個(gè)非常古老的語言,輪子都得現(xiàn)寫就不說了..
(u1s1如果你的工作就是玩表還是強(qiáng)烈建議學(xué)習(xí)一下VBA,至少學(xué)會(huì)錄制宏和循環(huán)、判斷)02
在審計(jì)一線其實(shí)很少聽人提及RPA,倒是在會(huì)計(jì)領(lǐng)域聽的更多一些,比如發(fā)票識(shí)別,錄入單據(jù)等等。
RPA其實(shí)是一個(gè)很寬泛的概念:Robotic process automation(機(jī)器人流程自動(dòng)化),簡單的說只要是電腦幫你做流程自動(dòng)化的都能稱為RPA。
平時(shí)我們所用到的VBA、Python是編程語言,他們更多用于具體的某個(gè)業(yè)務(wù)場景,而不會(huì)強(qiáng)調(diào)什么RPA概念,比如我要用VBA寫一個(gè)批量抓取匯率放進(jìn)底稿,或者批量按索引號(hào)整理文件名并鏈接到底稿的宏,寫完了以后他也就是成為了我的一個(gè)小工具而已。
RPA概念衍生出了很多的RPA產(chǎn)品,像國外的Uipath,國內(nèi)的Uibot、影刀等等,但不是說不用這些產(chǎn)品就跟RPA沒關(guān)系,其實(shí)很多RPA的實(shí)現(xiàn)都是用的Python,甚至有些RPA產(chǎn)品本身就是用Python實(shí)現(xiàn)的。
為什么會(huì)計(jì)領(lǐng)域聽得多,審計(jì)領(lǐng)域聽得少呢,以我自己的從業(yè)經(jīng)驗(yàn)和理解來說,會(huì)計(jì)崗位的辦公流程相對(duì)比較固定,在公司的內(nèi)控和OA軟件比較穩(wěn)定的情況下,變量是比較少的,大概率能用一個(gè)RPA軟件做的腳本一趟水做完。
但是審計(jì)面向全行業(yè),每個(gè)行業(yè)每個(gè)公司要執(zhí)行的審計(jì)程序是不確定的;每個(gè)被審計(jì)單位提供的數(shù)據(jù)源差異也非常大,畢竟各家的財(cái)務(wù)軟件也不一樣,審計(jì)員要花大量的時(shí)間干數(shù)據(jù)清洗的活;大多數(shù)情況下數(shù)據(jù)是反反復(fù)復(fù)來回修改很多次才能用,因此還需要大量的溝通工作;還有監(jiān)管的政策也在實(shí)時(shí)變化等等非常多的變量。
從現(xiàn)場賬套取數(shù)、做審計(jì)程序、收集審計(jì)證據(jù)、合并TB的編制到出具報(bào)告及附注,這一套流程會(huì)被分拆為非常多的子任務(wù)分配給不同的審計(jì)員,每個(gè)子任務(wù)需要不同等級(jí)的專業(yè)能力和經(jīng)驗(yàn),涉及了大量的溝通和職業(yè)判斷。我想沒有什么工具能夠?qū)崿F(xiàn)這整套流程的自動(dòng)化。
但是在具體實(shí)施審計(jì)程序的時(shí)候,面對(duì)集團(tuán)中大量的單體公司,或者大量的客戶和供應(yīng)商,一個(gè)審計(jì)程序可能要重復(fù)幾十上百遍,因此就誕生了很多的審計(jì)小工具,這些小工具其實(shí)就是RPA流程自動(dòng)化的一個(gè)體現(xiàn),只不過它沒法像會(huì)計(jì)崗位一樣把一套流程跑完,直接給你生成底稿,或者直接出個(gè)報(bào)告,而且它通常是以Excel宏的形式出現(xiàn),很難讓人跟聽起來高大上的RPA扯上關(guān)系。
我個(gè)人覺得不用太過于糾結(jié)RPA這個(gè)概念,簡單理解為提升工作效率的工具就行了。當(dāng)這個(gè)工具能幫你輸出最終的結(jié)果時(shí),比如工具能直接給你刷出某個(gè)審計(jì)程序的底稿,可能你會(huì)給它套上RPA的殼,如果它只是審計(jì)程序中解決重復(fù)工作的中間步驟,最后還得自己手動(dòng)整理底稿出報(bào)告的話,你可能只會(huì)覺得這是一個(gè)小工具。
所以是不是RPA其實(shí)不重要,我們需要做的就是保持學(xué)習(xí),在財(cái)審專業(yè)領(lǐng)域之外把需要用到的工具也學(xué)一學(xué)以便應(yīng)對(duì)審計(jì)過程中的各種情況,比如面對(duì)海量的數(shù)據(jù),Excel沒法勝任就去學(xué)SQL;面對(duì)Office內(nèi)大量重復(fù)的操作,去學(xué)VBA;需要大量抓取某些網(wǎng)絡(luò)數(shù)據(jù),去學(xué)Python爬蟲。
現(xiàn)在的學(xué)習(xí)門檻真的很低,但凡你想學(xué)什么,去B站一搜,都是從入門到入土的教學(xué)視頻..
實(shí)在不想花時(shí)間學(xué)編程語言,那你也可以試試這些中文的RPA產(chǎn)品。順嘴再提一句,審計(jì)行業(yè),每個(gè)項(xiàng)目組就像一個(gè)小作坊,大家用的工具都是本項(xiàng)目組的老員工流傳下來的工具,很多都是古董級(jí)別了,項(xiàng)目組與項(xiàng)目組之間的交流也非常少,再加上可能出現(xiàn)的高低級(jí)別斷層現(xiàn)象,導(dǎo)致很多新員工根本就不知道哪些審計(jì)程序用哪些工具效率更高,只能照著前輩流傳下來的底稿和方法工作。
最近我在所內(nèi)創(chuàng)了一個(gè)2000人的審計(jì)作業(yè)交流群,每天活躍人的很多,大家也樂于分享自己的方法和工具,我覺得這是一個(gè)很好的方式來促進(jìn)項(xiàng)目組之間的交流,大家能學(xué)到別的項(xiàng)目組是如何作業(yè)的。
有同行的話也可以在所里創(chuàng)建這樣的交流群,我覺得蠻有意義的。
最后是這個(gè)腳本的使用方法和編寫方法,如果要使用這個(gè)腳本的話,強(qiáng)烈建議還是過一遍編寫方法!
01
使用方法,總共3步
準(zhǔn)備工作:
1.首先你要下載UiBot這個(gè)軟件,直接在官網(wǎng)下載即可。
鏈接:https://laiye.com/product/process-creator
用免費(fèi)社區(qū)版就行。
2.還有我發(fā)的壓縮包(后臺(tái)回復(fù)“RPA”獲取下載地址)
第一步:
把壓縮包解壓,里面有2個(gè)文件夾以及一個(gè)Excel文檔↓
第一個(gè)是腳本的工程文件夾,第二個(gè)是放截圖的文件夾,第三個(gè)就是底稿
第二步:
打開UiBot Creator Community ,注意別開錯(cuò)了,是Creator
在軟件中點(diǎn)擊打開
打開目錄選擇剛剛說的第一個(gè)文件夾,點(diǎn)“選擇文件夾”:
第三步:
點(diǎn)第三行,選擇右邊的文件,打開第一步中的Excel底稿
選擇了Excel底稿之后就可以點(diǎn)左上角的運(yùn)行了。
注意:在腳本運(yùn)行期間不要去操作電腦。
下面是腳本的編寫方法,再說一遍如果你要用這個(gè)RPA腳本的話,強(qiáng)烈建議還是看一遍,了解整個(gè)邏輯之后即使報(bào)錯(cuò)了也知道該如何解決。
02
編寫方法
以我發(fā)的這個(gè)腳本為例來大致講講腳本怎么寫吧,具體的教程最好還是看官方的文檔或者教學(xué)視頻,如果你有面對(duì)對(duì)象的理念應(yīng)該上手會(huì)非??臁?br>
我們這個(gè)需求整體的邏輯很簡單:
1.打開Excel底稿→2.找到A列最后一行→
→3.從第4行開始到最后一行→4.把公司名依次填到天眼查的窗體中→5.點(diǎn)擊查詢
→6.把第一個(gè)出現(xiàn)的公司對(duì)應(yīng)的標(biāo)簽抓下來→7.進(jìn)入第一個(gè)公司的詳情網(wǎng)頁
→8.截圖并保存到相應(yīng)的文件夾→9.將截圖文件建立超鏈接到底稿
02.1
在UiBot中1-3步如下,還是很好理解的,“總行數(shù)”是一個(gè)變量,他就是最后行的行號(hào),然后讀取A4到A最后一行(即第四行開始)。
把這些公司名都賦值給了“公司組”這個(gè)變量,這個(gè)變量是個(gè)數(shù)組,“公司組”變量包括各個(gè)公司名,并且都是有序號(hào)的,比如“公司組[0]”就是第一個(gè)公司,“公司組[1]”就是第二個(gè)公司,可以參考VBA中的數(shù)組,序列從0開始。
02.2
4-6步,依次填入公司名并點(diǎn)擊查詢,那么先打開瀏覽器,然后建立一個(gè)循環(huán),這個(gè)循環(huán)就是每個(gè)公司名都要填入瀏覽器的天眼查框里
用“公司”這個(gè)變量遍歷公司組,在VBA中就是
For each 公司 in 公司組
Next
意思就是在公司組中有很多公司名,從第一個(gè)公司名開始,每個(gè)公司名都要經(jīng)歷下面的過程。
在天眼查的輸入控件中輸入文本“公司[0]”,在這里有個(gè)坑我提一下,公司這個(gè)變量已經(jīng)是公司組中的一個(gè)元素了,但是UiBot在取單元格的值時(shí),他取到的還是一個(gè)數(shù)組,所以我們在用這個(gè)值的時(shí)候就要加一個(gè)序號(hào)[0]
選擇網(wǎng)頁的元素也很簡單,點(diǎn)擊上面的錄制
選擇輸入文本即可
然后單擊查詢的按鈕,也是錄制這里的控件-單擊。
02.3
接下來是等網(wǎng)頁加載完,再抓取各個(gè)信息
抓取也很簡單,不用自己去解析標(biāo)簽,查Xpath,想正則表達(dá)式。這里直接在加載完之后,點(diǎn)數(shù)據(jù)抓取-選擇目標(biāo)
然后選中你要抓取的信息
確定以后他還會(huì)讓你抓一次,這是驗(yàn)證他解析的標(biāo)簽是否正確,那我們就再選下面這個(gè)公司相同的字段
選完以后他就會(huì)把這個(gè)網(wǎng)頁頁面的所有同級(jí)標(biāo)簽抓出來,賦值給變量“法定代表人組”,這也是一個(gè)數(shù)組,裝了所有的法定代表人,但是我們只需要第一個(gè)元素就行,因此后面寫入的時(shí)候是“法定代表人[0]”。后來我發(fā)現(xiàn)第一個(gè)元素他還是一個(gè)數(shù)組,所以要把內(nèi)容提出來就得再一個(gè)[0],這是第二個(gè)坑。同理把其他的字段都抓出來,把公司的鏈接也抓出來就行了。
接下來就是把抓出來的信息寫入到單元格中,在UiBot左側(cè)我們搜索Excel就能出來對(duì)Excel的全部操作
我們找到寫入單元格,拖到腳本里面
在這里要記得寫單元格的時(shí)候,第4行的公司,要寫在第4行,因此我們在前面定了一個(gè)變量n代表行數(shù),在這里就用上了,單元格是B4,熟悉VBA的同學(xué)應(yīng)該知道,字符串+變量要用雙引號(hào)和&連接起來。
02.4
打開公司詳情頁面,等待加載完成后截圖
截圖的方法就在左側(cè)搜索截圖即可
拖進(jìn)來以后指定好要截那個(gè)元素,再選好保存路徑。
在循環(huán)的最后記得讓n+1,保證下一次循環(huán)寫入的單元格是下一行的單元格。至此一個(gè)循環(huán)就寫完了
02.5
上面的循環(huán)是填信息+截圖保存到文件夾。
最后我們需要把截圖文件夾中的圖片建立索引到底稿中,這個(gè)方法在UiBot中是沒有的,已經(jīng)不屬于常規(guī)操作了,因此我在VBA中把過程寫好后,直接在UiBot中調(diào)用這個(gè)過程。
Sub 生成超鏈接(y)
For i = 4 To Range('A1048576').End(xlUp).Row
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, y), Address:='截圖\' & Cells(i, 2) & '.jpeg', TextToDisplay:=Cells(i, 2).Value
Next
End Sub
VBA的寫法可以自己錄制宏或者在網(wǎng)上找找代碼。
最后就是在UiBot中調(diào)用這個(gè)過程,指定參數(shù),關(guān)閉并保存Excel
這個(gè)UiBot要注意一下屏幕的分辨率問題,我的電腦如果用2K的分辨率150%放大率是找不到元素的,最后是用的1080P+100%放大率。
能看到最后的應(yīng)該不超過20%吧
,希望有興趣的小伙伴可以去試試這個(gè)RPA工具,與其等別人把工具做出來,不如自己去學(xué)一個(gè)工具做給別人用,得到的成就感是完全不一樣的這本書會(huì)送給留言點(diǎn)贊第一的小伙伴,截止到發(fā)文后的第3天24點(diǎn)(刷的不算哦)。
聯(lián)系客服