日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

adb+python实现自动领喵币

發布時間:2024/1/8 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 adb+python实现自动领喵币 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天使用Python+adb 來實現淘寶自動領喵幣。
簡單說一下adb是什么,adb中文名安卓調試橋。簡單來說,可以用它來模擬手機的操作,調試手機等等。
https://developer.android.google.cn/studio/command-line/adb

首先要配置好開發環境,

  • 安裝Python
  • 安裝adb(安裝并添加到Path)
  • 手機打開開發者模式(以小米為例,步驟為:設置–我的設備–全部參數–點擊MIUI版本7次(點擊時有提示,最后會提示已經進入開發者模式)–更多設置–開發者選項–打開USB調試和USB調試(安全設置)
  • 使用數據線連接電腦和手機
  • 開發環境配置好了就可以用python調用adb寫程序了。程序主要過程就是:1)截圖;2)找點;3)點擊。沒有特別的地方,但是要注意的是,這里我的屏幕是1080*1920的,如果你的屏幕分辨率不一樣的話,可能要修改坐標(因為去分享也是紅色的,所以程序找點的起點是去分享下面(不然就會一直點去分享))。

    #稍微修改了一下2020/5/30 08:38 #需要配置好adb。 #運行前打開淘寶,進入領喵幣活動頁面。 import os import timefrom PIL import ImageMAX_TIMES = 15 # 自定義最大瀏覽次數#用來執行命令,這里加了延遲 def execute_cmd(args):DELAY_SECOND = 3#延遲時間, 因為網絡和手機響應速度不同,反應慢的可以改大一些。time.sleep(DELAY_SECOND) #等待上一步操作響應完成os.system(args)#截圖保存到手機上, 上傳到電腦上 def screencap():execute_cmd('adb shell screencap -p /sdcard/screen.png')execute_cmd('adb pull /sdcard/screen.png')#獲取顏色z(rgb)對應的坐標(x,y) def get_pos(z,x_start=953,y_start=0):image = Image.open('screen.png')width = image.size[0]height = image.size[1]for x in range(x_start, x_start+100 if x_start+100<width else width):for y in range(y_start,height):data = image.getpixel((x,y))[:3]if data == z:return (x,y)# 進入領喵幣中心 def enter_miaobi_center():# 截圖screencap()z = (249, 239, 108)pos = get_pos(z)execute_cmd('adb shell input tap {} {}'.format(pos[0], pos[1]))# 瀏覽店鋪 def browse_stores():BROWSER_WAIT = 15 #瀏覽等待15秒screencap()# z是在'去瀏覽'圖標上取色得到的rgb,用來定位'去瀏覽'坐標z = (237, 46, 67)for i in range(0, MAX_TIMES):pos = get_pos(z, 790, 1190)print(pos)#調試用# 點擊去瀏覽execute_cmd('adb shell input tap {} {}'.format(pos[0], pos[1]))# 下滑瀏覽,防止第一次沒滑動成功,滑動兩次execute_cmd('adb shell input swipe 900 1500 900 500 200')execute_cmd('adb shell input swipe 900 1500 900 500 200')print('進入店鋪,瀏覽頁面中,請等待15s...')time.sleep(BROWSER_WAIT)# 返回execute_cmd('adb shell input keyevent 4')print('END')if __name__ == '__main__':try:enter_miaobi_center()except:print("進入喵幣中心失敗,可能已經進入領喵幣中心,嘗試進入瀏覽頁面...")try:browse_stores()except:print('瀏覽失敗')

    另外,實現找點的方法除了像素點檢測,還可以調用opencv的函數matchTemplate來實現。這種方法更加準確(因為它可以匹配一塊區域,而不是一個點)。另外這種方法的通用性更好。
    有關matchTemplate的文章: https://www.jianshu.com/p/c20adfa72733

    import cv2 as cv import numpy as np #在target中匹配tpl, #傳入兩個圖像 #返回中心坐標點 def mathch_center(tpl,target):th,tw = tpl.shape[:2] #獲取模板圖像的高寬result = cv.matchTemplate(target, tpl, cv.TM_CCOEFF_NORMED) # result是我們各種算法下匹配后的圖像threshold = 0.9 #閾值,1表示完全匹配loc = np.where(result>=threshold)#返回所有匹配圖像的中心點for pt in zip(*loc[::-1]): # *號表示可選參數br = (pt[0] + tw, pt[1] + th) # 右下點center = (int)((pt[0] + br[0]) / 2), (int)((pt[1] + br[1]) / 2)yield center

    補充一個adb無線連接的方式,只要第一次用數據線連接,之后只要在同一局域網內就可以無線連接了。(參考http://www.aoaoyi.com/archives/738.html#chapter2.3)

    2.3、無線連接(需要借助 USB 線)
    除了可以通過 USB 連接設備與電腦來使用 adb,也可以通過無線連接——雖然連接過程中也有需要使用 USB 的步驟,但是連接成功之后你的設備就可以在一定范圍內擺脫 USB 連接線的限制啦!

    操作步驟:

    1.將 Android 設備與要運行 adb 的電腦連接到同一個局域網,比如連到同一個 WiFi。

    2.將設備與電腦通過 USB 線連接。應確保連接成功(可運行 adb devices 看是否能列出該設備)。

    3.讓設備在 5555 端口監聽 TCP/IP 連接:

    adb tcpip 5555
    4.斷開 USB 連接。

    5.找到設備的 IP 地址。

    一般能在「設置」-「關于手機」-「狀態信息」-「IP地址」找到,也可以使用下文里 adb 命令來查看設備信息 – IP 地址 。

    6.通過 IP 地址連接設備。

    adb connect
    這里的 就是上一步中找到的設備 IP 地址。

    7.確認連接狀態。

    總結

    以上是生活随笔為你收集整理的adb+python实现自动领喵币的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。