2019-11-09

Cointiply密技大公開(二):使用SikuliX全自動點選官方廣告「PTC ADS」!


Cointiply View PTC Ads SikuliX Script

Cointiply Powerful 密技大公開!全自動點選官方廣告「PTC ADS」!


    沒錯、正港Cointiply官方版也有推送自個的ADS,邊當起廣告營運商外邊另闢財路達到裡外通吃的效果~(消耗玩家的Coins跟引來外資,買空賣空嗎?)在Cointiply的另類玩法、如何玩轉優惠碼「Promo Code」!的一文中提到,玩家的我們也可以藉由Cointiply推送自個的廣告去達到我們自己的廣告流量效果。(好聽一點說法,這叫雙贏的局面!

    俗話說的好「禮多人不怪」、「禮輕情意重」有人送就有人拿,而這拿禮(Ads)的規矩也是有竅門的喔~既然資方竭盡所能到處塞滿各種廣告在各頁面上想避都避不了,那麼勞方的我們在拿這些微薄的「PTC ADS」薪資時……我們就要更有效率地去賺取!對否?


    呵、呵、請順著我的帖文絲路去走喔~在前帖初略介紹了SikuliX的用法,算是入門的起手式。對SikuliX的自動化處理不了解或之前沒看過的人,乖、就煩請先點選下方的延伸閱讀瀏覽一番再回來。(笑)

    Cointiply的「PTC ADS」的自動化點選方案,以SikuliX來說算是蠻容易處理的。



       廣告啊~廣告啊~今夜的妳、瞧起來標緻得離了譜兒。」、我們有快樂的權力、你知道嗎?」、「我會完美詮釋何謂完美主義給您瞧。」當上帝說你要愛你的敵人,在這裡我們要愛我們的廣告好嗎!?喔、Cointiply別嘟嘴氣噗噗~我們沒犯家法、也忠實地點擊也確切精準地完美觀賞……只是……有點心不在焉在看而已啦~(笑)

媽的~廣告不會再多一點嗎?」不要驚訝、看完此帖您將會贊同此觀點!
蛤?您竟然沒有Cointiply帳號!給俺快去先申請一個新申請去~

 善用其他工具來輔助區間或點的定位查找!

    拖累SikuliX的腳本使其無法達到最高效率的原因,往往是花費在尋圖跟比對的時間上,針對此點的解決方案,我們可以事先設定一個範圍區塊(Region)或者一個點擊位置(x,y),來加快其尋找的速度來解決。

    但是螢幕(Screen)上是以點像素來呈現的,平常我們是無法確切地知曉滑鼠的游標此刻所處的座標或者某一區塊的框範圍位置。如果要達到……能得知螢幕上座標此目的的話,我是蠻推薦 Meazure 這款軟體。(必備工具

Meazure 2.0
官方網站:http://www.cthing.com/Meazure.asp
軟體性質:免費軟體

    Meazure是一款可測量螢幕上其點陣XY軸座標值免費軟體,能測量出螢幕上的點、線、面跟角度等相關的XY軸座標之外,有可挪移式的水平跟垂直的尺度條跟全螢幕格線檢視、並還有可局部放大精準定位的放大鏡功能,跟同時回報指標所指物件或者點位置上的色碼值。程式預設為最上層顯示開啟模式,非常實用推薦給大家。



    SikuliX的尋圖方式是以左上方為原點開始去尋找,如上圖   這是我們要找的圖塊,與其讓它一一從左往右從上往下去比對尋找……不如直接指定一個範圍將其搜索縮小如 Reg = Region(x, y, w, h) ,這樣您將會提昇不少速度。


 分析、摸索:沒有解決不了的難題!


▼設定相對應的圖檔名稱!

    前置作業:首先我們要將所有的驗證圖都截圖下來。

    Cointiply「PTC ADS」的驗證方式是給出一組關鍵文字,然後依照此文字去找出相對應的item圖出來點擊,例如Anchovies 你就要找出鯷魚罐頭的圖出來。

    此刻、每截下一張item圖請更改檔名要更改成其對應的驗證文字!重要~


▼全部搜羅起來囉~

    收滿收齊後就如上圖所示,共有30張item圖跟3張比對圖。這是現時期Cointiply 的驗證圖…至於往後是否有所增加或修改驗證方式,那只能到時看著辦囉~(別想一招行遍天下


▼開始寫腳本程式!

65-66:找出是否有  ?有的話就點擊它。
68:等待新開的廣告網頁的網址欄上不是  時才進行下一動作。
69:快樂地等待10秒廣告時間~(笑)
70:搿~搿~關閉此廣告頁面(移駕回到Cointiply)
71:log 一下、表老子曾到此一遊過。
72:前往去執行驗證動作。
73-75:當找不到  代表好康的都點完了,就退出咩~



▼利用圖片樣式的位置偏移功能!

    Cointiply會扔出5張圖片並在  後秀出驗證文字,依此關鍵文字去點擊對應item圖才算真正完成一筆廣告任務。


    所以找出  位置並能成功抓取接下未知的的關鍵文字就至關重大。除了前面所推薦的工具軟體Meazure可簡單找出相對應位置,我們也可以利用SikuliX 本身圖片樣式設定當中的目標位置偏移此功能來推敲出來。

    SikuliX所抓取到的圖塊座標,其預設的點位置就是圖塊的中心點當原點。如上圖

▼描準官網給的字串起始位置!
    關鍵文字會出現在  的右側方,此刻我們可調整
目標位置偏移X:值去抓出位置出來。


▼快按左鼠鍵2下雖能達成目的……但…


    起初……天真地………認為只要點擊   後面的文字區塊位置…然後快按2下……


if exists():
        click()
        x=Env.getMouseLocation().getX()+40
        y=Env.getMouseLocation().getY()
        doubleClick(Location(x,y))  
    doubleClick 自然地會全選出文字(如上圖),然後再複製起來就能成功抓取到此文字囉………沒錯、當是1個字串時如Sack、Fish、Pills、Paint等等是成功,但若是2個字串以上時如Wooden Logs、Bolts of Cloth、First Aid Kit等等時就只能抓到前一個不能抓全。(此刻要快按3下才能全選到
    所以何時要針對關鍵文字去快按2下或3下來全選……就成困難的抉擇了。此刻、「不如放棄此法直接用滑鼠,去滑移此字塊區域來圈選呢?」的這一想法油然生起。
PS:當然還有許多方法可以達成抓取的目的,若您還有更快速的妙方請分享一下喔~

▼預估最多字串時的滑移距離!


    為了達成滑選的目的,首先我們要大致地要知道要該滑移多少位置。最長的是Wooden LogsSmall Lollipop的這等寬文字,也不需要多精準只需大約去對比  的字串寬,來去偏移 X值。



▼單一字串偏移抓取時造成誤抓到下方!

    重新改寫一下、去模擬用滑鼠抹選文字的方式……

if exists():

        click()
        x=Env.getMouseLocation().getX()+40
        y=Env.getMouseLocation().getY()

        click(Location(x,y))    #left Point
        keyDown(Key.SHIFT)
        mouseDown(Button.LEFT)
        x +=105
        hover(Location(x,y))     #right Point
        mouseUp()
        keyUp()
        wait(2)

        type("c",KeyModifier.CTRL)

    問題又發生了~1個字串時因偏移抓取值大於字串寬時……如上圖變成多抹移到下方去了!


    此時、會複製到2行的文字進來,那麼該如何克服呢?



▼分割出第一行的文字出來!

49-55:模擬滑鼠滑選文字動作

57-58:複製滑選區文字至 s
59:z=s.split("\n",2)[0] 依跳行\n來裁切出各行文字出來,[0]表選第一行文字

    如此一來~完美地抓取到關鍵文字,將此文字傳送到執行點擊item圖goclick(z)去。




▼直接以圖檔案名呼叫查找並點擊!

    執行點擊item圖的動作很簡單,click(z) 內的 z 就是接收來的關鍵文字,而早先我們的item圖的檔名就是其相對應的關鍵文字,click(z)變成去點擊畫面上z
關鍵文字的item圖。

    最後、再回到原點 runPTCads() 重新辨認廣告還有沒有。大功告成!

 直接發YouTube視頻、跑給您瞧瞧效果!


YouTube 連結: Cointiply View PTC Ads Auto-click script


    視頻中整個演示都能夠確切抓取並辨識出item的關鍵字與點選,不過、仔細看這過程中有沒有發現到有誤點到一個我知、我知、您一定按快移沒詳看!導致點選item失敗。您要不要再詳細看一下,看您會不會找到在哪個時間點誤點到不正確的item圖呢?(有獎喔~

    造成錯誤點擊原因就是開頭的倒數秒數過短,item圖位置又變換了!

    由於、此腳本並沒有弄成以精準座標的方式來點擊(就不能適用到不同的電腦上),故尋圖比對上所消耗的時間過長,另外也沒有先去判斷倒數秒數的多寡然後再尋圖。還有倘若不幸您的掃毒軟體抓到廣告頁有毒時,也有可能會造成SikuliX的腳本突然中斷。

    「不要太完美!」「不要太精準!」沒錯、經驗說要偶而來點突槌不然就變成機器人囉~SikuliX的腳本若搞得分秒不差快速達成………失去了人味………就很容易被抓包!(笑)



    也可利用檢視網頁元素 class 的方式,來抓取各自的關鍵字。



    要等待多少秒才去關閉廣告頁的wait(秒)設定呢?由於已經變成全自動點選了,故在時間上就不要設定的那麼匆促,免得跳出警示訊息(上圖)反而得不償失。


    廣告推送時觀看的時間有上圖的七種選定,看越久當然廣告商也花費越多,目前幾乎沒碰到最高階的40 Seconds 的廣告,故取個中間值12或15 Seconds 的wait(秒)設定應該算是蠻佳的選擇。


    喝~前幾天才說完………最近就突然連續數天蹦出……這最高等級的 40 秒廣告………真是太奇妙囉?(難道?用此招抓玩腳本的人嗎?)看樣子、要把腳本補全一點免得錯失這好康的。



沒有留言:

張貼留言