最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python自動搶紅包教程詳解

 更新時間:2019年06月11日 08:17:45   投稿:laozhang  
在本篇文章里小編給大家整理了關(guān)于Python自動搶紅包的相關(guān)知識點內(nèi)容,有興趣的朋友們參考學(xué)習(xí)下。

0 引言

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

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

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

1 環(huán)境

操作系統(tǒng):Windows

Python版本:3.7.2

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

2 需求分析

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

因為電腦版本的微信沒有搶紅包的功能,我們只能手機(jī)微信,那么就需要把手機(jī)連上電腦,通過電腦控制手機(jī)來自動搶,那就需要確?!竌db」命令可正常執(zhí)行。

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

3 前置準(zhǔn)備

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

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

3.2 下載安裝Airtest IDE
開始之前先,先解釋下airttest相關(guān)概念:

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

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

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

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

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

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

請使用USB線連接手機(jī),手機(jī)上出現(xiàn)的 允許USB調(diào)試 彈窗,點擊 確定。

  • 點擊連接面板中的 refresh ADB 按鈕,設(shè)備列表將會刷新。
  • 點擊列表內(nèi)對應(yīng)設(shè)備的 Connect 完成連接。
  • 若設(shè)備未刷出,點擊 refresh ADB 按鈕。

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

4 搶紅包流程回顧

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

在AirtestIDE中,我們可以通過暫停功能,凍結(jié)當(dāng)前的UI樹形結(jié)構(gòu)來精確地檢視UI控件,我們先來分析下這個頁面中元素標(biāo)識。

▲聊天頁面中整體的群聊消息的元素標(biāo)識 com.tencent.mm:id/d1v

▲聊天頁面中單個群聊消息的元素標(biāo)識 com.tencent.mm:id/b6e

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

我們先來看看紅包的標(biāo)識:

▲紅包標(biāo)識的示例1 com.tencent.mm:id/aql

▲紅包標(biāo)識的示例2 com.tencent.mm:id/aql

點擊紅包,記錄下彈出的大紅包頁面中“開”的元素標(biāo)識

▲大紅包頁面中”開“的標(biāo)識 com.tencent.mm:id/d02

這里我們需要判斷是紅包是否有效,比如已被領(lǐng)完或是已被自己領(lǐng)取的紅包就是無效的,我們在執(zhí)行時可以跳過這些。

▲已領(lǐng)取紅包的標(biāo)識 com.tencent.mm:id/apk

▲已被領(lǐng)完紅包的標(biāo)識 com.tencent.mm:id/apk

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

5 代碼梳理

首先得打開微信,利用Airtest啟動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)
 # 點擊進(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中定義搶紅包的動作

if Invalid.exists() and (Invalid.get_text()=='已領(lǐng)取' or Invalid.get_text()=='已被領(lǐng)完'):
 print(f'紅包已無效,跳過……')
 continue
else:
 print(f'發(fā)現(xiàn)一個新紅包,搶起來!')
 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í)行這個腳本嗎?

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

pip install pocoui

利用 AirtestIDE 創(chuàng)建一個項目時,設(shè)備類型選中 Android,就會在編碼區(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í)行腳本時要確保手機(jī)連上電腦,并確?!竌db」命令正常運行。

相關(guān)文章

  • python實現(xiàn)圖像拼接

    python實現(xiàn)圖像拼接

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)圖像拼接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • NumPy迭代數(shù)組的實現(xiàn)

    NumPy迭代數(shù)組的實現(xiàn)

    本文主要介紹了NumPy迭代數(shù)組的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)

    Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)

    這篇文章主要介紹了Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 詳解Python中__str__和__repr__方法的區(qū)別

    詳解Python中__str__和__repr__方法的區(qū)別

    這篇文章主要介紹了__str__和__repr__方法的區(qū)別 ,__str__和__repr__是基本的內(nèi)置方法,使用時的區(qū)別也是Python學(xué)習(xí)當(dāng)中的基礎(chǔ),需要的朋友可以參考下
    2015-04-04
  • 10個Python小技巧你值得擁有

    10個Python小技巧你值得擁有

    這篇文章主要介紹了10個Python小技巧,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • pycharm重置設(shè)置,恢復(fù)默認(rèn)設(shè)置的方法

    pycharm重置設(shè)置,恢復(fù)默認(rèn)設(shè)置的方法

    今天小編就為大家分享一篇pycharm重置設(shè)置,恢復(fù)默認(rèn)設(shè)置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 淺談python之新式類

    淺談python之新式類

    這篇文章主要介紹了淺談python之新式類,詳細(xì)的介紹了如何使用新式類和經(jīng)典類的區(qū)別。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • python 實現(xiàn)圍棋游戲(純tkinter gui)

    python 實現(xiàn)圍棋游戲(純tkinter gui)

    這篇文章主要介紹了python 如何實現(xiàn)圍棋游戲,幫助大家利用tkinter制作圖形界面程序,感興趣的朋友可以了解下
    2020-11-11
  • 利用Python+Excel制作一個視頻下載器

    利用Python+Excel制作一個視頻下載器

    說起Excel,那絕對是數(shù)據(jù)處理領(lǐng)域王者般的存在。而作為網(wǎng)紅語言Python,在數(shù)據(jù)領(lǐng)域也是被廣泛使用。本文將利用Python和Excel制作一個視頻下載器,需要的可以參考一下
    2022-05-05
  • python 實現(xiàn)兩個變量值進(jìn)行交換的n種操作

    python 實現(xiàn)兩個變量值進(jìn)行交換的n種操作

    這篇文章主要介紹了python 實現(xiàn)兩個變量值進(jìn)行交換的n種操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

宁陵县| 新巴尔虎右旗| 兴仁县| 资源县| 海林市| 唐海县| 虎林市| 静宁县| 宝丰县| 荥经县| 永嘉县| 呼伦贝尔市| 从江县| 万年县| 台北市| 金昌市| 独山县| 武冈市| 天等县| 兰坪| 鄂托克前旗| 寿宁县| 梅河口市| 连州市| 易门县| 大冶市| 长春市| 阳春市| 星座| 开江县| 庆元县| 大同县| 潞西市| 陇西县| 常州市| 清远市| 荆州市| 腾冲县| 宁强县| 宽甸| 鄂托克前旗|