亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!

系統(tǒng) 1993 0

Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!_第1張圖片

目錄:
0 引言
1 環(huán)境
2 需求分析
3 前置準(zhǔn)備
4 搶紅包流程回顧
5 代碼梳理
6 后記

0 引言

提到搶紅包,就不得不提Xposed框架,它簡直是個(gè)搶紅包的神器,但使用Xposed框架有一個(gè)前提條件:手機(jī)需要root,對于蘋果手機(jī)的話就需要越獄了。現(xiàn)在的手機(jī)想要root或越獄并不容易,同時(shí)這會(huì)對手機(jī)安全性帶來一些風(fēng)險(xiǎn),搶紅包本身只是個(gè)娛樂活動(dòng),這樣做就得不償失了。

為了自動(dòng)搶紅包,python能幫我們實(shí)現(xiàn)嗎?

答案是肯定的,本文就帶大家一起探索下用Python如何實(shí)現(xiàn)自動(dòng)搶紅包。

1 環(huán)境

操作系統(tǒng):Windows

Python版本:3.7.2

手機(jī)系統(tǒng):Android

2 需求分析

這里我們的需求是實(shí)現(xiàn)自動(dòng)搶紅包。首先要打開微信,進(jìn)入到指定的群聊,識別微信紅包、執(zhí)行搶紅包的動(dòng)作。這就是關(guān)鍵的步驟,簡單清晰。

因?yàn)殡娔X版本的微信沒有搶紅包的功能,我們只能手機(jī)微信,那么就需要把手機(jī)連上電腦,通過電腦控制手機(jī)來自動(dòng)搶,那就需要確保「adb」命令可正常執(zhí)行。

識別微信中的消息,是紅包還是普通的信息,這里我們通過聊天消息的元素標(biāo)識來判斷。這里我們借助了「Airtest IDE」工具來實(shí)現(xiàn)。

3 前置準(zhǔn)備

3.1 打開手機(jī)的USB調(diào)試

要正常使用「adb」需要打開USB調(diào)試,設(shè)置項(xiàng)通常出現(xiàn)在手機(jī)系統(tǒng)設(shè)置中的[開發(fā)人員選項(xiàng)]里面。

Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!_第2張圖片

在手機(jī)上打開USB調(diào)試后,接下來我們通過Airttest IDE驗(yàn)證 adb 運(yùn)行是否正常。

3.2 下載安裝Airtest IDE

開始之前先,先解釋下airttest相關(guān)概念:

Airtest 是一個(gè)跨平臺的、基于圖像識別的UI自動(dòng)化測試框架,適用于游戲和App,支持平臺有Windows、Android和iOS。

Poco是一款基于UI控件識別的自動(dòng)化測試框架,目前支持Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程序,也可以在其他引擎中自行接入poco-sdk來使用。

AirtestIDE 是一個(gè)我們配套推出的跨平臺的UI自動(dòng)化測試編輯器,內(nèi)置了Airtest和Poco的相關(guān)插件功能,能夠使用它快速簡單地編寫腳本。

Airtest IDE 的下載地址:http://airtest.netease.com/

下載之后,解壓打開就可以使用,Airtest IDE的界面如下:

Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!_第3張圖片

使用AirtestIDE對Android應(yīng)用進(jìn)行自動(dòng)化操作,第一步就需要連接Android設(shè)備。

  1. 請使用USB線連接手機(jī),手機(jī)上出現(xiàn)的 允許USB調(diào)試 彈窗,點(diǎn)擊 確定。
  2. 點(diǎn)擊連接面板中的 refresh ADB 按鈕,設(shè)備列表將會(huì)刷新。
  3. 點(diǎn)擊列表內(nèi)對應(yīng)設(shè)備的 Connect 完成連接。
  4. 若設(shè)備未刷出,點(diǎn)擊 refresh ADB 按鈕。

Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!_第4張圖片

若連接遇到問題,請參考Airtest的官方教程:Android真機(jī)連接

4 搶紅包流程回顧

打開微信,在最左側(cè)的Tab頁,微信消息列表,我們需要從這里選擇指定的群聊來搶紅包。

在AirtestIDE中,我們可以通過暫停功能,凍結(jié)當(dāng)前的UI樹形結(jié)構(gòu)來精確地檢視UI控件,我們先來分析下這個(gè)頁面中元素標(biāo)識。
Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!_第5張圖片
▲聊天頁面中整體的群聊消息的元素標(biāo)識 com.tencent.mm:id/d1v

Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!_第6張圖片
▲聊天頁面中單個(gè)群聊消息的元素標(biāo)識 com.tencent.mm:id/b6e

接下來進(jìn)入我們準(zhǔn)備要搶紅包的群聊中,識別出紅包并執(zhí)行搶紅包的動(dòng)作。

我們先來看看紅包的標(biāo)識:
Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!_第7張圖片
▲紅包標(biāo)識的示例1 com.tencent.mm:id/aql

Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!_第8張圖片
▲紅包標(biāo)識的示例2 com.tencent.mm:id/aql

點(diǎn)擊紅包,記錄下彈出的大紅包頁面中“開”的元素標(biāo)識
Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!_第9張圖片
▲大紅包頁面中”開“的標(biāo)識 com.tencent.mm:id/d02

這里我們需要判斷是紅包是否有效,比如已被領(lǐng)完或是已被自己領(lǐng)取的紅包就是無效的,我們在執(zhí)行時(shí)可以跳過這些。
Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!_第10張圖片
▲已領(lǐng)取紅包的標(biāo)識 com.tencent.mm:id/apk

Python自動(dòng)搶紅包,超詳細(xì)教程,再也不會(huì)錯(cuò)過微信紅包了!_第11張圖片
▲已被領(lǐng)完紅包的標(biāo)識 com.tencent.mm:id/apk

我們用的各元素的標(biāo)識都已取到,接下來就是組織我們的代碼。

5 代碼梳理

首先得打開微信,利用Airtest啟動(dòng)app應(yīng)用,只須一行代碼即可搞定,如下

          
            # 打開手機(jī)微信
poco(text='微信').click()
          
        

獲取當(dāng)前頁面中所有所有群聊的名稱

          
            # 群聊消息的元素標(biāo)識
Chat_msg = poco(name='com.tencent.mm:id/d1v').offspring('com.tencent.mm:id/b6e')
# 獲取當(dāng)前頁面中所有群聊的名稱
Chat_names = []
Chat_names = list(map(lambda x: x.get_text(), Chat_msg))
          
        

選擇并進(jìn)入指定的群聊

          
            # 指定搶紅包的群聊名稱
chat = input('請指定群聊名稱:')
if chat in Chat_names:
    index = Chat_names.index(chat)
    # 點(diǎn)擊進(jìn)入指定的群聊
    Chat_msg[index].click()
在微信聊天頁面中,獲取當(dāng)前頁面中的所有消息元素。

msg_list = poco("android.widget.ListView").children()
          
        

遍歷消息并查找紅包

          
            for msg in msg_list:
    # 微信紅包的標(biāo)識
    LuckyMoney = msg.offspring('com.tencent.mm:id/aql')
    # 已失效紅包(比如已領(lǐng)取、已被領(lǐng)完)的標(biāo)識
    Invalid = msg.offspring('com.tencent.mm:id/aqk')

    # 判斷紅包是否有效并搶起來!
    if LuckyMoney:
        pass
          
        

在LuckyMoney中定義搶紅包的動(dòng)作

          
            if Invalid.exists() and (Invalid.get_text()=='已領(lǐng)取' or Invalid.get_text()=='已被領(lǐng)完'):
    print(f'紅包已無效,跳過……')
    continue
else:
    print(f'發(fā)現(xiàn)一個(gè)新紅包,搶起來!')
    poco("com.tencent.mm:id/d1v")
    msg.click()

    click_open = poco("com.tencent.mm:id/d02")
    if click_open.exists():
        click_open.click()
    keyevent('BACK')
          
        

6 后記

若我們在一臺電腦上并不想安裝Airtest IDE,還能執(zhí)行這個(gè)腳本嗎?

當(dāng)然可以,只需要安裝好「pocoui」這個(gè)第三方庫就可以“拋棄”它了!

pip install pocoui

利用 AirtestIDE 創(chuàng)建一個(gè)項(xiàng)目時(shí),設(shè)備類型選中 Android,就會(huì)在編碼區(qū)生成一段初始化的代碼。

          
            from airtest.core.api import *
auto_setup(__file__)

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
          
        

我們自己編寫的Python代碼中也需要加上這段初始化的代碼。

再次強(qiáng)調(diào),在執(zhí)行腳本時(shí)要確保手機(jī)連上電腦,并確保「adb」命令正常運(yùn)行。

對Airtest有興趣的小伙伴,可以參考airtest官方教程:AirtestIDE官方文檔

關(guān)注公眾號「 Python專欄 」,后臺回復(fù): python搶紅包 ,獲取本文所涉及的完整代碼


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 奇米影视777色 | 国产深夜福利视频观看 | 国产一区二区三区免费 | 亚洲国产第一区二区三区 | 拔插拔插成人 | 久草在线免费看视频 | 美女黄频 | 久久久久琪琪免费影院 | 伊人久久大香线蕉亚洲 | 国产精品久久久久三级 | 91国语精品自产拍在线观看一 | 免费区欧美一级毛片 | 欧美一级级毛片 | 青青青青手机在线视频观看国产 | 国产黄色自拍 | 成人性色生活影片 | 久久免费视频网站 | 精品一区二区免费视频 | 青草青青在线观看免费视频 | 久久精品影院一区二区三区 | 日本一级片在线观看 | 中文字幕精品一区二区三区视频 | 伊人久久综合谁合综合久久 | 今天的恋爱未删减在线观看 | 精品欧美一区二区在线看片 | 日本天天谢天天要天天爱 | 欧美日韩久久毛片 | 九九视频在线观看视频6偷拍 | 欧美特级爽毛片 | 88国产精品视频一区二区三区 | 精品成人免费一区二区在线播放 | 国产精品伦理久久久久 | 黑人特级粗α级毛片 | 久久精品国产99国产精品免费看 | 国产一区二区三区在线影院 | 亚洲国产精品综合久久2007 | 午夜影院在线 | 成人影院www在线观看 | 亚洲天天做夜夜做天天欢人人 | 亚洲视频一二 | 久久综合欧美成人 |