書接上文:http://www.itdecent.cn/p/0e759365f8b1
這是auto.js的第二篇非官方教程~
前幾天,寫了一篇auto的入門教程,簡單介紹了一下auto.js的各個(gè)內(nèi)容和下載過程,順帶寫了個(gè)“hello world”。那么應(yīng)該就算是入門完畢了吧~
腳本畢竟是腳本,不同其他正常的學(xué)習(xí)語言,以做題來熟悉,腳本還是通過完成實(shí)例來完成要好得多。
那么本期的實(shí)例,便是,“抖音極速版自動刷視頻腳本”。眾所周知,現(xiàn)在大大小小的短視頻APP都弄了不少的看視頻賺現(xiàn)金領(lǐng)紅包之類的玩法提高用戶的留存率,這些看視頻的錢說多不多說少也不少,每天有事沒事的時(shí)候還是可以薅薅羊毛賺個(gè)一點(diǎn)點(diǎn)零花錢的,當(dāng)然,前提是你的流量和電不要錢~
好,正式開始本文的腳本教程。在開始編寫腳本前,我們要明確我們要實(shí)現(xiàn)的目標(biāo):在抖音極速版通過刷視頻來獲取金幣!
1. 我們抓字眼逐步完成功能,首先我們要完成的目標(biāo)就是 “在抖音極速版”,那么如何完成這一步呢?首先,auto.js提供了一個(gè)打開手機(jī)文件的功能函數(shù),
app.launchApp(appName)
-
appName{string} 應(yīng)用名稱
通過應(yīng)用名稱啟動應(yīng)用。如果該名稱對應(yīng)的應(yīng)用不存在,則返回false; 否則返回true。如果該名稱對應(yīng)多個(gè)應(yīng)用,則只啟動其中某一個(gè)。
該函數(shù)也可以作為全局函數(shù)使用。
launchApp("抖音極速版");//打開抖音極速版
這個(gè)函數(shù)是直接通過查找手機(jī)應(yīng)用的名字找到相應(yīng)應(yīng)用的名字,將上面代碼中的”抖音極速版“換成其他應(yīng)用也可以打開其他手機(jī)應(yīng)用。
2. 打開APP后我們通常會進(jìn)入首頁的位置,也就是已經(jīng)在刷視頻了,但可能也有意外,這時(shí)我們要判斷沒進(jìn)入刷視頻界面的情況,讓腳本自行進(jìn)入。我們通過一個(gè)指令:click()來點(diǎn)擊首頁進(jìn)入刷視頻界面。(即使已經(jīng)是這個(gè)界面了,點(diǎn)擊一次也不會有影響。)
click(name)
-
name{string} 點(diǎn)擊的文字
通過判斷文字,點(diǎn)擊相應(yīng)文字的位置,如果沒有對應(yīng)的文字,則返回false,否則返回true。
click("首頁");//點(diǎn)擊文字”首頁“
這個(gè)代碼用以點(diǎn)擊文字用,腳本會根據(jù)代碼要求,模擬點(diǎn)擊相應(yīng)的位置,這個(gè)代碼用處非常廣,只要把引號中的中文改了,就可以完成許多應(yīng)用的一些日常操作。
3. 有同學(xué)做到這一步了,發(fā)現(xiàn)腳本運(yùn)行后似乎并不會點(diǎn)擊文字"首頁",那么到底是哪一步出問題了呢?手機(jī)和電腦和人都一樣,都是靠大腦來處理信息,也就是cpu,但手機(jī)的cpu反應(yīng)速度要遠(yuǎn)比人的速度要快,所以,在手機(jī)運(yùn)行比較慢的情況下,還沒進(jìn)入抖音極速版的界面,便已經(jīng)完成點(diǎn)擊的那一步代碼了,自然便不會再點(diǎn)擊一次了。所以,我們要讓手機(jī),慢下來!
sleep(n)
-
n{number} 毫秒數(shù)
暫停運(yùn)行n毫秒的時(shí)間。1秒等于1000毫秒。
sleep(1000);//延時(shí)1000毫秒。
當(dāng)你發(fā)現(xiàn)你有些功能實(shí)現(xiàn)不了的時(shí)候,不要想太多,往功能前面加上延時(shí)就對了~具體延時(shí)多久自行根據(jù)手機(jī)反應(yīng)速度判斷。一般建議5秒最穩(wěn),也就是5000毫秒
4.那么已經(jīng)進(jìn)入界面了,前期的準(zhǔn)備步驟已經(jīng)完成了,下面就要開始刷視頻了。刷視頻通常都是通過視頻的上滑或者下滑來完成。那么,我們要通過一個(gè)滑動的代碼來完成這個(gè)操作。
swipe(x1, y1, x2, y2, duration)
-
x1{number} 滑動的起始坐標(biāo)的x值 -
y1{number} 滑動的起始坐標(biāo)的y值 -
x2{number} 滑動的結(jié)束坐標(biāo)的x值 -
y2{number} 滑動的結(jié)束坐標(biāo)的y值 -
duration{number} 滑動時(shí)長,單位毫秒
模擬從坐標(biāo)(x1, y1)滑動到坐標(biāo)(x2, y2),并返回是否成功。只有滑動操作執(zhí)行完成時(shí)腳本才會繼續(xù)執(zhí)行。
每個(gè)手機(jī)的坐標(biāo)可能都不太一樣,華為手機(jī)可以通過設(shè)置—系統(tǒng)—開發(fā)人員選項(xiàng)—指針位置,獲取坐標(biāo)位置,這里只推薦一個(gè)比較標(biāo)準(zhǔn)通用的上滑操作指令。
swipe(550, 1100, 450, 180, 500);
這里的標(biāo)準(zhǔn)是華為手機(jī)6.0寸屏幕,大家可以根據(jù)自己的情況自行調(diào)整。這里的上滑下滑肯定不止是用來刷視頻用,就像我之前,寫過一個(gè)左右滑動的代碼,來自動翻頁讀小說。請靈活運(yùn)用腳本。創(chuàng)造來源于生活,有需求才有發(fā)展!
5.上面這一步的滑動已經(jīng)寫好了,我們已經(jīng)可以完成一次滑動的操作了,但要領(lǐng)紅包,肯定是要不?;瑒右曨l,才能保證紅包源源不斷的轉(zhuǎn)動,難道我們要寫好幾十個(gè)滑動的代碼?當(dāng)然不是,任何程序都有自己的循環(huán)代碼,非常方便。
js中的for循環(huán)和C語言是一樣的:for(var i=1;i<=10;i++){
//運(yùn)行內(nèi)容
}
// i=1是初始次數(shù),10是結(jié)束次數(shù),靈活調(diào)整這個(gè)數(shù)字可以循環(huán)完成重復(fù)的操作。
那么我們自動滑動視頻的代碼該怎么寫呢?這里只要把第4和第5的代碼合二為一即可:
for(var i=1;i<=10;i++){
swipe(550, 1100, 450, 180, 500);
sleep(10000)
}
當(dāng)然,這里要加上延時(shí),避免兩次操作重合
至此,一個(gè)簡單的薅羊毛腳本已經(jīng)完成了!讓我們看一下這個(gè)腳本,一共用了幾個(gè)代碼。
- app.launchApp(appName)//打開文件
- click(name)//點(diǎn)擊文字
- sleep(n)//延時(shí)函數(shù)
- swipe(x1, y1, x2, y2, duration)//滑動屏幕
- for循環(huán)//寫循環(huán)
是不是覺得非常簡單?
最后補(bǔ)上整段代碼(部分優(yōu)化),上一篇教程已經(jīng)下載好auto.js 的同學(xué)可以嘗試一下。
launchApp("抖音極速版");
sleep(1000);
click("首頁");
for(var i=1;i<=10;i++){
if(i%5==0){
swipe(550, 880, 450, 1800, 500);
sleep(10000);
toast("這是第"+(i)+"次滑動,已運(yùn)行"+(i*10)+"秒");
}
else{
swipe(550, 1080, 450, 180, 500);
sleep(10000);
toast("這是第"+(i)+"次滑動,已運(yùn)行"+(i*10)+"秒");
}
}