上海疫情泛濫,很多人都搶不到菜,我也是其中一員,每天早上要五點半起來上叮咚買菜搶菜,每次手速慢就搶不到了,所以就只能挨餓了。作為一個程序猿,能通過技術手段搶就絕不動手。我通過這個方法連續兩天搶到菜,可能也有一部分運氣原因,畢竟本人運氣一直都不錯。
聲明:
該教程只適用于安卓手機,并不保證能搶到菜,只是增加了搶菜手速,類似于物理外掛連點器。使用該編程基礎是最好的,沒有基礎的話利用稍后給出的代碼也能運行起來。
該教程利用的是安卓手機手機的無障礙服務。廢話不多說,來看具體實現。
工具
本教程使用的工具是開發工具VS code + autoJs。
VS code 的使用
- 安裝VS code
下載地址:https://code.visualstudio.com/ ,文末有獲取方式,可根據自己的電腦情況選擇對應的版本。
image.png
安裝的話就一直下一步就行了,中間可以根據需要更改自己的安裝路徑。
- 安裝autoJs插件
在VS Code中菜單"查看"->"擴展"->輸入"Auto.js"或"hyb1996"搜索,即可看到"Auto.js-VSCodeExt"插件,安裝即可。插件的更新也可以在這里更新。
image.png
-
運行autoJs插件
使用快捷鍵Ctrl+Shift+p,彈出以下界面,選擇Start Server
image.png
出現以下界面則server 端運行成功。
-
關閉防火墻
Windows系統在安全中心找到正在使用的網絡,關閉防火墻
image.png 查看IP
autojs需要連接server端,要知道本機電腦IP地址,Windows系統在命令行輸入ipconfig查看IP,我的IP地址是192.168.1.37
autoJs的使用
- 安裝
autoJs是一個安裝包,文末有獲取方式。
安裝好之后會有下面彈窗,不要更新。
image.png
- 開啟無障礙服務
不同的牌子的手機開啟無障礙服務方式可能不一樣,按照系統提示開啟即可。
image.png
image.png
-
開啟懸浮窗
在權限管理里面,找到懸浮窗權限,再找到autojs,開啟即可。
image.png
開啟懸浮窗之后,會在屏幕上看到這個圖標
-
連接電腦
在輸入框輸入電腦的IP地址
image.png
按鈕高亮則連接成功,如果連接還是不成功,要看看防火墻是否關閉。
腳本編寫
-
獲取布局
autoJs 是通過無障礙服務控制手機的,但是要寫代碼來控制。所以要知道軟件上每一個控件的位置,剛才開啟了autoJs彈窗,點擊彈窗,選擇藍色圓圈
image.png
選擇布局范圍分析
選擇一個頁面上控件,查看控件信息
也可以生成代碼
生成結果,這個生成的代碼是比較長的,通過它的這個選擇器是肯定能夠找到我們這個控件的,但是有的控件是有id的,通過id選擇會更簡單高效。
- 代碼示例
在VS code中新建一個文件,下面是叮咚買菜立即支付頁面的代碼。
//立即支付
var tv_submit = id("tv_submit").findOne();
while(true){
sleep(50);
tv_submit.click();
}
在當前文件界面下,使用快捷鍵Ctrl—+Shift+p,選擇Run,不出問題的話,這段代碼就會自動執行,如果發現代碼沒有執行先看看是否成功連接到server端或者代碼是否有問題。
更多關于autojs的使用請查官方文檔https://hyb1996.github.io/AutoJs-Docs/#/widgetsBasedAutomation?id=scrolldowni
總結
再次強調本教程不保證搶菜一定能百分之一百成功,只是省去并加速自己動手點擊的問題。
關注我公眾號suncodernote并回復關鍵詞搶菜獲取需要的軟件。