如何寫微信小程序的自動化腳本?
首先對問題補(bǔ)充一下,是這樣的,寫一個自動化腳本,自動幫助我們完成一些事情。就像微信《跳一跳》風(fēng)靡后,有人開發(fā)了在機(jī)械裝置下,自動完成跳一跳,攫取高分的腳本。
自動化腳本是一個什么區(qū)域的概念?
有一個專有的名稱叫RPA,RPA是Robotic Process Automation的簡寫,譯作中文是機(jī)器人流程自動化。RPA可以將自動化軟件作為虛擬勞動力,依據(jù)預(yù)先設(shè)定的程序(腳本),與現(xiàn)有系統(tǒng)進(jìn)行交互,并完成預(yù)期任務(wù)。
由此可見,RPA就是我們要找的內(nèi)容了。
RPA機(jī)器人能夠模仿大多數(shù)人類用戶的行為。它們能夠登錄應(yīng)用程序、移動文件和文件夾、復(fù)制和粘貼數(shù)據(jù)、填寫表單、從文檔中提取結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)、抓取瀏覽器等。

RPA的實(shí)現(xiàn)原理是什么?
那么,RPA是如何實(shí)現(xiàn)的呢?
RPA智能機(jī)器人本身并不具有智能,并且一般都是非侵入式的。它集成人與數(shù)字系統(tǒng)之間的交互行為,自動取得數(shù)字系統(tǒng)的輸出,自動對結(jié)構(gòu)化或半結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行分析和處理,自動輸入數(shù)據(jù),以此達(dá)到自動化運(yùn)行的目的。
RPA最大的特點(diǎn)就是非侵入,合規(guī)合法。
當(dāng)下有哪些RPA軟件可以選用?
按鍵精靈
按鍵精靈是一款國內(nèi)模擬鼠標(biāo)鍵盤動作的軟件。通過制作腳本,可以讓按鍵精靈代替雙手,自動執(zhí)行一系列鼠標(biāo)鍵盤動作。工具鏈接為:http://www.anjian.com/。

據(jù)說這個軟件常規(guī)功能是免費(fèi)的,高級功能是收費(fèi)的,還有手機(jī)App版本。這個網(wǎng)站上有“腳本”的概念,這個腳本應(yīng)該是和問題中腳本是一個意思了。一般來講,腳本在編程中的意思指的是解析型代碼。
按鍵精靈網(wǎng)站上有一個腳本學(xué)院,可見這個軟件腳本的編寫,是有一定門檻的,是需要花一些時間學(xué)習(xí)和研究的。近半年來低代碼概念非常熱門,可以將RPA工具的偽代碼與低代碼在一定程度上等同視之。
Easy Macro Recorder
Easy Macro Recorder 是一個國外類似按鍵精靈的鼠標(biāo)鍵盤自動操作軟件,它實(shí)現(xiàn)了讓鍵盤與鼠標(biāo)自動點(diǎn)擊與自動輸入,可以自動執(zhí)行電腦上重復(fù)而繁瑣的任務(wù)。工具鏈接是:https://www.macrorecorder.com/。
UiPath
在實(shí)施RPA部署之前,需要先有一個PoC的過程。PoC是Proof of Concept的簡寫,譯為中文是概念驗(yàn)證。一個操作能不能由自動化機(jī)器人取代,要從概念上首先驗(yàn)證通過。RPA并不是智能機(jī)器人,它是沒有智力的,它本質(zhì)上只是一個自動化工具。如果從概念上無法驗(yàn)證可以實(shí)現(xiàn)自動化,那么在工具上也無法部署。
在這里就避開不了UiPath了。
UiPath是一家開發(fā)機(jī)器人流程自動化平臺的全球軟件公司,同時UiPath也是這家公司的RPA產(chǎn)品。就是前不久2月2日,Uipath宣布F輪融資 7.5億美元。據(jù)報(bào)道該公司已經(jīng)秘密提交了IPO文件,計(jì)劃最早在2021年上半年上市。
如下所示,這是使用UiPath編寫的一個簡單示例的運(yùn)行效果圖。在Windws系統(tǒng)上,監(jiān)聽系統(tǒng)時間,并通知員工該休息了。該示例來自《RPA智能機(jī)器人》,這本書是作者的微信好友朱龍春大哥編寫的,有一段時間他的朋友圈天天發(fā)RPA圖書封面簽名照。

UiPath有免費(fèi)的社區(qū)版本可以嘗試,在線申請之后就可以下載。申請鏈接為:
https://www.uipath.com.cn/community-edition-download/
注意,它目前只支持Windows系統(tǒng),使用它,要先確認(rèn)有一個Windows電腦。UiPath可以說是RPA機(jī)器人領(lǐng)域最優(yōu)秀的工具之一了,研究企業(yè)自動化,離不開UiPath。
UiBot
這又是一款RPA工具,它支持一鍵錄制流程并自動生成機(jī)器人,支持可視化編程與專業(yè)模式,支持瀏覽器、桌面、SAP等多種控件抓取,支持C、Lua、Python、.Net 擴(kuò)展插件及第三方SDK接入。
鏈接是:https://www.uibot.com.cn/product
TheEye
Theeye是支持手機(jī)端的,是一個功能強(qiáng)大且簡單的自動化平臺。對于企業(yè)來說,它是一個RPA平臺。它可以將我們所有的腳本,應(yīng)用程序,服務(wù)和工作自動化流連接在一起。
鏈接是:https://theeye.io/

還有一款容智RPA產(chǎn)品(https://www.infodator.com),號稱支持手機(jī)操作,可惜它沒有免費(fèi)的社區(qū)版本,只有企業(yè)解決方案,申請?jiān)囉靡俜饺斯徍恕?/p>
有沒有控制更精細(xì)的可以真正編程的RPA類庫?
除了按鍵精靈那樣的傻瓜式的軟件,有沒有可以精細(xì)化地控制的,可以真正用代碼編程的RPA類庫?即使有這個小標(biāo)題,答案肯定是有的。
Python:SeleniumBase
SeleniumBase是一個用于web自動化、實(shí)現(xiàn)端到端測試等功能的Python框架,它使用指令“pytest”運(yùn)行測試。在瀏覽器上經(jīng)由WebDriver協(xié)助控制,具有找到頁面元素取得文本,找到輸入框輸入文本等能力,藉此可以測試Web網(wǎng)站。
這個框架不再使用偽代碼,可以使用真正的編程語言Python編寫。將它給測試工程師使用叫測試,給自運(yùn)營人員使用,就是一個自動刷贊、評論的工具了。
鏈接是:https://github.com/seleniumbase/SeleniumBase
JavaScript:Apify-JSSDK
瀏覽器頁面的腳本是js,解析網(wǎng)頁最合適的語言是js。Apify JSSDK正是一個JavaScript / Node.js類庫,它可以擴(kuò)展,可以用于Web抓取和分析,它還可以實(shí)現(xiàn)Web自動化作業(yè)。
鏈接是:https://github.com/apify/apify-js
以下示例是使用Apify實(shí)現(xiàn)的動態(tài)效果,它可以自動打開網(wǎng)頁,完成分析并自動關(guān)閉,并且這些操作都是拿真實(shí)代碼實(shí)現(xiàn)的。

Wechaty
針對微信,Wechaty是一個自動聊天機(jī)器人,它嚴(yán)格來說,不是傳統(tǒng)意義上的RPA工具,因?yàn)樗腔跀?shù)據(jù)流協(xié)議進(jìn)行信息控制的。作者前幾天剛做了一個開源的小工具《一個使用小微商戶+微信聊天機(jī)器人構(gòu)建的私域運(yùn)營助手》,可以實(shí)現(xiàn)自動通過好友、自動收款、并拉人入群。有興趣可以參考一下,鏈接見:
https://mp.weixin.qq.com/s/TUKmK7IgJElECt7hNq5QEA
Puppeteer
Puppeteer是一個Node.js庫,它提供了通過DevTools協(xié)議控制Chrome或Chromium的高級API。在Github上已經(jīng)大約有恐怖的7w個Star。
這里有一個使用puppeteer加載一個頁面,并截圖保存圖片的示例代碼:
// example.jsconst puppeteer = require('puppeteer');(async () => {const browser = await puppeteer.launch();const page = await browser.newPage();await page.goto('https://example.com');await page.screenshot({path: 'example.png'});await browser.close();})();
這樣啟動它:
node example.js鏈接是:https://github.com/puppeteer/puppeteer
總結(jié)
好了,最后總結(jié)一下,由于RPA是在PC時代發(fā)展起來的,所以目前在移動端的支持也不是很完善。但隨著時間的推移和需求的暴漲,支持移動端是勢在必然的。
目前直接在手機(jī)端寫關(guān)于微信小程序的腳本還是有一點(diǎn)困難的。雖然Wechaty是專門操作微信的,但它還沒有直接操作小程序的API。目前微信小程序已經(jīng)可以在PC端微信中打開了,可以基于PC端的RPA工具間接實(shí)現(xiàn)控制。
對于程序員來講,RPA開發(fā)最好是使用真實(shí)代碼的類庫,優(yōu)先推薦Python的SeleniumBase和JS的Apipy-SDK。對于非程序員來講,如果選擇UiPath。UiPath雖然是一款國外軟件,但它的網(wǎng)站也支持中文,并且它還有App端數(shù)據(jù)巡視軟件。對于剛拿完7.5億美元融資的UiPath來講,相信它不久就會支持手機(jī)端。
RPA已經(jīng)成為云計(jì)算時代在科技興農(nóng)、辦公自動化等領(lǐng)域非常重要的子趨勢。人工智能還沒有進(jìn)化到可以將人代替,但在很多重復(fù)勞作的崗位上,RPA正在替代普通打工人。這里有一個專門介紹RPA產(chǎn)品、資訊的網(wǎng)站,必須提一下,它是:
https://www.51rpa.net/
如果推薦書籍,朱龍春的《RPA智能機(jī)器人》就值得一觀。
我講明白沒有,歡迎留言討論。
2021年02月07日
《小程序從0到1:微信全棧工程師一本通》一本全面而系統(tǒng)的介紹小程序開發(fā)技術(shù)的書籍

