??以騰訊視頻極速版為首,包含趣頭條、東方頭條、全名小視頻在內的 App 都有看新聞、視頻送金幣的活動,當金幣達到一定量后,就可以提現到微信、支付包。
??如果單純靠人工去點擊看新聞和視頻,會浪費很多時間。本文的目標是利用auto.js驅動手機去看新聞,每天幫我們薅一個早餐錢。
auto.js簡介
什么是auto.js
auto.js是一個支持無障礙服務的Android平臺上的JavaScript IDE,可以編寫各種自動化腳本,它主要有以下優點:
- 無需root:基于無障礙服務;
- 基于控件:以坐標為基礎的按鍵精靈、腳本精靈很容易出現分辨率問題,而以控件為基礎的Auto.js則沒有這個問題;
- 上手簡單:使用javascript編寫,支持中文變量名;
- 可打包 :可以將JavaScript打包為apk文件,這一點可以簡化用戶操作,對上了年紀的用戶很重要;
另外auto.js還有結合Tasker、自動布局分析、生成簡單代碼等功能,詳見官方文檔,這里就不搬運了~
auto.js能做什么
auto.js可以替代用戶做一些手機操作,比如以下腳本:
- 一鍵收集螞蟻森林能量
- 微信跳一跳腳本
- 支付寶星星球腳本
- 手機屏幕取色器
- 百度貼吧一鍵簽到
- 東方頭條、趣頭條自動刷金幣
- 超星爾雅學習刷課腳本
- 王者榮耀刷金幣
auto.js怎么用
首先下載auto.js APP,地址在下方
- 安裝并打開,會提示需要啟用無障礙服務,點擊去設置,會跳轉到手機設置-系統-無障礙頁面,在應用列表選擇Auto.js,開啟無障礙服務即可;
- 回到APP主頁,點擊頁面上方腳本選項卡,進入腳本列表,右下角可以選擇導入腳本,或者新建文件或文件夾,我們新建一個send.js,點擊三角標志可以運行腳本,我們首先點擊鉛筆圖標進入編輯頁面;
-
auto.js提供了很好的手機端輔助編輯工具,我們輸入以下代碼,這段代碼可以實現輸入一段文字,并發送給QQ好友:
//本示例來自官方文檔,是一個QQ文本消息分享腳本 var content = rawInput('請輸入要分享的文本'); //啟動QQ發送組件 app.startActivity({ action: "android.intent.action.SEND", type: "text/*", extras: { "android.intent.extra.TEXT": content }, packageName: "com.tencent.mobileqq", className: "com.tencent.mobileqq.activity.JumpActivity" });
-
右上角點擊保存,然后點擊運行按鈕,運行示例如下:
- 發送成功后腳本運行結束,可以在auto.js APP里查看日志,對于循環調用的腳本,推薦在APP設置里打開音量上鍵停止所有腳本,這樣也避免了我們不小心寫了死循環的情況。
- auto.js也可以使用電腦開發,推薦使用vscode的Auto.js-VSCodeExt插件,使用很簡單,詳見https://github.com/hyb1996/Auto.js-VSCode-Extension
相關資料
官方文檔:https://hyb1996.github.io/AutoJs-Docs/
Github:https://github.com/hyb1996/Auto.js
APP下載地址:
bilibili視頻教程: https://www.bilibili.com/video/av35582484?from=search&seid=12319191216902661794
bilibili文字教程:https://www.bilibili.com/read/cv1033982
薅羊毛腳本示例
好了我們進入正題,如何使用自動化腳本薅一把羊毛呢?這讓我不得不想到我們小鎮的薅羊毛團體:他們白天霸占公園,晚上霸占廣場,連朋友圈,都被他們轉發的新聞鏈接霸占~
沒錯,他們就是大爺大媽們,他們長期使用東方頭條、趣頭條等軟件,每天手動看新聞刷金幣,分享新聞刷金幣,最后使用金幣兌換人民幣并提現,以此達到薅資本主義羊毛的目的。
我簡單了解了一下,新手階段過去之后,一個APP大概要兩三天能得到一元錢,這真是個體力活呢,算時薪的話幾乎沒法看了~
而且跳廣場舞的時候又不能使用手機看新聞,這真是廣場舞與羊毛不可兼得啊,這正是我們自動化腳本的用武之處:這邊手機自動刷著新聞,那邊跳了一輪又一輪,跳完舞還可以對比一下誰刷的金幣多,啊,仿佛看見了廣場舞自由~
好了,不開玩笑了,使用腳本刷金幣的行為是被廠家所禁止的,所以以下腳本僅供學習交流使用,嚴禁使用于任何商業用途:
騰訊新聞極速版自動讀新聞腳本
我們以騰訊新聞極速版v1.6.20為例,簡單介紹一下思路:
-
首先打開app,如果不是首頁的要先回到首頁:
app.launchApp("騰訊新聞極速版"); backHomePage(8); function backHomePage(flag) { log("返回主頁函數調用次數" + flag) if (flag < 0) { start(); } else if (!isHomePage()) { back() sleep(1500) backAndEnter(--flag) } } function isHomePage() { //判斷有無評論組件,防止把視頻新聞頁面誤判為首頁 return currentActivity() === "com.tencent.news.activity.SplashActivity" && id(assemblyId.isHomePage).findOne(200) == null; }
-
獲取新聞列表,點擊進入新聞頁面,判斷有沒有紅包,沒有的話返回首頁,刷新新聞后重新進入新聞頁面:
var ar = id(assemblyId.newList).find(); ar.get([num]).parent().click(); if (id(assemblyId.redPacket).exists()) { sleep(1000); toNextNew(); } else { backAndEnter(8) refreshNews() }
-
如果有紅包,則使用swipe模擬滑動到頁面最底部,等待紅包打開后,上拉進入下個新聞:
scrollDown(); log("滑動完成,等待紅包") waitTipOpen(500); log("判斷暫無相關內容") if (text("暫無相關內容").exists()) { backAndEnter(8); refreshNews(); } else { randomSwipeDown(1000, 300); readNews(); } //滑動到最后 function scrollDown() { while (!(text("查看更多評論").exists() || id(assemblyId.sofa).exists())) { if (waitArr[waitFlag]) { sleep(waitArr[waitFlag++]) } randomSwipeDown(1100, 300); } } //等待紅包打開,超過8秒未打開則繼續 function waitTipOpen(i) { if (id(assemblyId.redPacket).exists() && i > 0) { sleep(10); waitTipOpen(--i); } }
如果下一條新聞沒有紅包,那就返回首頁,刷新新聞后重新進入新聞頁面;
以上幾步就可以完成一個簡單的自動閱讀腳本,運行后就可以不停的閱讀新聞了。是不是很簡單,但是實際編寫測試中會有很多坑,因為腳本運行起來有很多不確定性,經常卡在奇怪的地方,需要花許多時間調試才能獲得一個穩定版本。
建議有興趣的伙伴,可以自行學習并編寫腳本,我已經調試出了一個穩定版本,可以穩定執行到手機沒電的那種,下面給出github地址,歡迎感興趣的朋友交流學習:
https://github.com/forgetallthing/autojsScripts
腳本增加了休息模式,可以在腳本中編輯工作時長和休息時長:
var config = {
mode: "new",
startNewNo: 7, //從第幾個新聞開始(0-10)
continuReadNum: 20, //連續閱讀數,防止app出現不能通過向上滑動切換新聞的情況
workTime: 60000 * 45, //工作時間
restTime: 60000 * 1, //休息時間
noRest: false, //不休模式
}
github中有安裝和使用此腳本的示例gif和視頻,我會在github中持續更新腳本,喜歡的點個star,不勝感激。