【“探探”為例】手把手教你用最少的程式碼實現各種“機器人”

Gavin1995發表於2019-02-16

前言

之前寫了篇文章:【全是乾貨】談談如何學習一項新技能,沒有理論,全是實戰,裡面第五點提到用指令碼玩探探,昨天花了一個小時實現了該功能。

Github:探探機器人,自動根據不同妹紙/漢子顏值、年齡等型別,喜歡、忽略,歡迎各位star

先看一下實現的結果吧

今天要講的主題是:使用 指令碼 + WebDriverAgent 實現你自己想要自動操控的任意手機App。

探探“機器人”實現原理

  1. 裝置開啟WebDriverAgent
  2. 使用usbmuxd(iTunes與iPhone通訊採用usbmuxusbmuxd提供了USB-TCP的轉換服務),裡面的iproxy將裝置埠轉為本地埠

    > brew install usbmuxd
    > iproxy 8100 8100  # 將裝置8100埠對映到電腦本地8100埠
  3. 使用指令碼操控手機App,Python為例(其它語言的實現,可自行去包管理網站找,比如:Node

    import wda  # https://pypi.org/project/facebook-wda/
    wdaClient = wda.Client()
    tantan_session = wdaClient.session('com.yaymedialabs.putong')  # 括號裡為探探的Bundle ID,後面會提到怎樣獲取
    wdaClient.screenshot('iphone_screen.png')  # 擷取手機螢幕並儲存為iphone_screen.png
    iphone_screen = Image.open('./iphone_screen.png')
    img_face = iphone_screen.crop((34, 215, 1208, 1560))  # 根據座標點擷取出Plus 獲取探探裡面的照片
  4. 上面已經獲取到了探探裡面的照片,此時可以呼叫三方api分析照片的資料,例:騰訊的AI Api
  5. 根據第4步獲得的結果判斷 喜歡、忽略,直接使用上面的tantan_session點選對應按鈕就好了

    tantan_session.tap(780, 2028)  # plus探探喜歡按鈕的座標

擴充

  1. facebook-wda的功能還有很多,詳情見文件
  2. tantan-bot只實現了最簡單的功能,其實可以很容易實現功能增加,比如:第一張截圖識別不到人臉的,可以讓指令碼點照片進去滑動,檢測到人臉後再判斷喜歡、忽略(不錯過每一個妹紙?)
  3. Python的影像處理很方便,比如你可以寫一個指令碼實時監控你微信上女朋友是否給你發新訊息了。我的思路:每5秒OCR識別一下聊天視窗,然後取OCR識別出的最後一條資料(非你自己發出的),採用Simhash演算法比對與上一次是否差不多,如果相識度不高,證明是新訊息,則呼叫三方聊天機器人API(當然你也可以扒出你自己的聊天資料用分類演算法分個類,當新訊息來了在你的語言庫裡去找一條最合適的回給你女朋友,看著不像是個機器人?),於是女朋友就和智慧機器人愉快的聊了一晚上,把自己都感動哭了?
  4. 這個拿來玩遊戲早有實踐,比如:跳一跳
  5. 用wda也可以很方便的實現到時自動搶東西的功能,省得去破協議,幾句程式碼搞定?
  6. 探探這個個人資訊也可以用ocr很容易識別出來分析,因為它都在固定區域,這樣可以很容易判斷對方的年齡、星座等

補充

  1. Bundle ID獲取:https://offcornerdev.com/bundleid.html
  2. OCR識別:百度 APIGoogle tesseract

最後

下次見面,說不定我就已經實現上面說的東西了哦, 來波關注、star吧,哈哈!

文章同步釋出:blog

相關文章