校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > 用60行代碼實(shí)現(xiàn)Python自動(dòng)搶微信紅包

用60行代碼實(shí)現(xiàn)Python自動(dòng)搶微信紅包

熱門標(biāo)簽:杭州房產(chǎn)地圖標(biāo)注 天津塘沽區(qū)地圖標(biāo)注 江門智能電話機(jī)器人 滴滴地圖標(biāo)注公司 400電話在線如何申請(qǐng) 甘肅高頻外呼系統(tǒng) 地圖標(biāo)注可以遠(yuǎn)程操作嗎 智能電話機(jī)器人調(diào)研 如何申請(qǐng)400電話代理

春節(jié)來到,紅包們大概率在微信各大群中肆虐,大家是否都一樣不搶到紅包們心里就感覺錯(cuò)過了一個(gè)億,可總會(huì)被這事那事耽誤而遺憾錯(cuò)過,下面用 Python 寫一個(gè)自動(dòng)搶紅包代碼

 

啟動(dòng)入口

啟動(dòng)程序的配置和公眾號(hào)文章《用 Python + Appium 的方式自動(dòng)化清理微信僵尸好友》的配置一樣

from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from appium.webdriver.common.touch_action import TouchAction
from selenium.webdriver.support import expected_conditions as EC

desired_capabilities = {
    'platformName': 'Android', # 操作系統(tǒng)
    'deviceName': '2a254a02', # 設(shè)備 ID
    'platformVersion': '10.0.10', # 設(shè)備版本號(hào),在手機(jī)設(shè)置中查看
    'appPackage': 'com.tencent.mm', # app 包名
    'appActivity': 'com.tencent.mm.ui.LauncherUI', # app 啟動(dòng)時(shí)主 Activity
    'noReset': True # 是否保留 session 信息 避免重新登錄
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities)
# 設(shè)置等待超時(shí)時(shí)間
wait = WebDriverWait(driver, 60)

點(diǎn)擊進(jìn)入聊天窗口

微信在一般情況下最新的聊天記錄將被放在第一個(gè),所以只需要打開第一個(gè)聊天窗口檢查有沒有紅包就可以了,用 id 為 com.tencent.mm:id/e3x 可以找到所有的聊天信息,我們?nèi)〉谝粋€(gè)聊天群的索引

# 進(jìn)入第一個(gè)聊天框
red_packet_group = driver.find_elements_by_id('com.tencent.mm:id/e3x')[0]
red_packet_group.click()

找到紅包

進(jìn)入聊天群后,紅包圖片檢查是否存在紅包,它的 id 為 com.tencent.mm:id/r2

 # 檢查紅包
reds = driver.find_elements_by_id('com.tencent.mm:id/r2')
if len(reds) == 0:
  driver.keyevent(4)

搶紅包

點(diǎn)擊紅包后會(huì)出現(xiàn)以下 3 種情況

  • 紅包已經(jīng)被自己領(lǐng)取了
  • 紅包手慢了沒搶到
  • 紅包未領(lǐng)取

前兩種情況紅包已經(jīng)失效了,最后一種才是可以打開的紅包

紅包已經(jīng)失效了

在上面代碼中都是用 id 檢查元素是否存在,這里使用查找文字已存入零錢手慢了判斷紅包是否已經(jīng)失效

# 判斷元素是否存在
def is_element_exist_by_xpath(driver, text):
    try:
        driver.find_element_by_xpath(text)
    except Exception as e:
        return False
    else:
        return True


# 領(lǐng)取了
is_open = is_element_exist_by_xpath(driver, '//android.widget.TextView[contains(@text, "已存入零錢")]')
# 沒搶到
is_grabbed = is_element_exist_by_xpath(driver, '//android.widget.TextView[contains(@text, "手慢了")]')

if is_open or is_grabbed:
    driver.keyevent(4)

打開紅包

打開紅包比較簡(jiǎn)單,只需要找到  字的 id

wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/den"))).click()
wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/dm"))).click()

刪除紅包

最后我們將紅包刪除,防止紅包被重復(fù)打開。當(dāng)長(zhǎng)按紅包時(shí),微信紅包會(huì)出現(xiàn)刪除按鈕

TouchAction(driver).long_press(red).perform()
wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/gam"))).click()
wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/doz"))).click()

總結(jié)

這是學(xué)習(xí)并使用 Appium 的第三篇文章,Appium 可以將手機(jī)操作自動(dòng)化,大家學(xué)廢了嗎?

到此這篇關(guān)于用60行代碼實(shí)現(xiàn)Python自動(dòng)搶微信紅包的文章就介紹到這了,更多相關(guān)Python自動(dòng)搶微信紅包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python自動(dòng)搶紅包教程詳解
  • python生成隨機(jī)紅包的實(shí)例寫法
  • Python實(shí)現(xiàn)的微信紅包提醒功能示例
  • Python+PIL實(shí)現(xiàn)支付寶AR紅包
  • python 實(shí)現(xiàn)紅包隨機(jī)生成算法的簡(jiǎn)單實(shí)例
  • python實(shí)現(xiàn)紅包裂變算法
  • Python版微信紅包分配算法
  • Python+Appium實(shí)現(xiàn)自動(dòng)搶微信紅包

標(biāo)簽:臨汾 長(zhǎng)春 東莞 漢中 重慶 河池 德宏 廊坊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用60行代碼實(shí)現(xiàn)Python自動(dòng)搶微信紅包》,本文關(guān)鍵詞  用,60行,代碼,實(shí)現(xiàn),Python,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《用60行代碼實(shí)現(xiàn)Python自動(dòng)搶微信紅包》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于用60行代碼實(shí)現(xiàn)Python自動(dòng)搶微信紅包的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 蒙阴县| 万荣县| 雅江县| 卢湾区| 马边| 满城县| 蓝田县| 洛川县| 方山县| 新疆| 虞城县| 旬邑县| 三门县| 银川市| 肇东市| 康平县| 南康市| 潼南县| 淮阳县| 柳江县| 尼勒克县| 安岳县| 尖扎县| 崇州市| 潜山县| 新沂市| 伊宁市| 上犹县| 海林市| 唐海县| 施甸县| 阿拉善左旗| 台湾省| 曲沃县| 新泰市| 上饶县| 曲阜市| 泸定县| 绥中县| 永济市| 新沂市|