哈嘍兄弟們,今天我們來試試用Python找出了洗掉自己微信的所有人,并將他們自動化洗掉,免得每次看到感嘆號心塞,
這不,昨晚小姨子一個人喝多了喊我去接她,但是我睡到現在,剛發訊息就發現把我拉黑了…

你是否也有微信被刪了好友不自知,還傻傻的給對方發訊息,結果出現了下圖中那尷尬的一幕的經歷呢?其實我們可以用Python提前把他們找出來并自動化洗掉避免尷尬的,
為了避免再次出現上述情況,我決定把微信通訊錄中洗掉了自己的人全部找出來并且洗掉,之前我已經在網上了解到檢查自己的微信是否被刪比較好的方式就是轉賬,通過轉賬我們可以實作無痕檢測,
下面我們通過兩張圖片直觀的看一下微信被刪前后給別人轉賬的效果:
沒刪我之前

刪了我之后

現在已經知道了檢測方式,正在我準備挨個檢測時,無意識的滑動了微信通訊錄串列,100、200 … 500 …
編程實作的基本思路如下:
獲取微信通訊錄串列中每個人的名字(備注)并記錄,這個是不會有重復的,因為即使在之前加好友時有重復的,自己也會在備注時給改了
遍歷獲取到的通訊錄串列,分別對每一個人執行轉賬操作,如果檢測到是洗掉自己的人就對其執行洗掉操作,如果檢測到不是洗掉自己的人則繼續檢測下一個人,依次往復回圈
環境
因之前在模擬器上測驗 Appium 模擬微信轉賬可能有點問題,因此本文使用真機實作,
先簡單介紹一下真機環境,下面一起來看一下相應步驟,
打開微信登錄自己的微信號
在手機中依次執行(點擊):設定->我的設備->全部引數->MIUI版本(多次點擊,開啟開發者模式)->回傳設定串列->更多設定->開發者選項->開啟開發者選項并分別開啟:USB除錯、USB安裝、USB除錯(安全設定)選項,如圖所示:

此時手機上會彈出USB的用途彈框,我們選擇傳輸檔案(MTP)即可,如圖所示:

在電腦 CMD 中執行 adb devices 命令,看是否能找到自己的手機,比如下圖所示就是成功的結果了

在上面步驟中你可能出現找不到手機的情況,通常這種情況是驅動問題,這里介紹一種簡單的處理方式:下載一個驅動精靈,安裝啟動之后點擊驅動管理,之后安裝相應驅動即可解決,如圖所示:


通過上面的一系列操作,我們已經處理好了真機環境了,
Appium 的環境本文就不說了,如果不清楚的話,可以看一下:環境
首先看一下相應引數配置,代碼實作如下:
desired_caps = { "platformName": "Android", # 系統 "platformVersion": "8.0.0", # 系統本號 "deviceName": "m5s", # 設備名 "appPackage": "com.tencent.mm", # 包名 "appActivity": ".ui.LauncherUI", # app 啟動時主 Activity 'unicodeKeyboard': True, # 使用自帶輸入法 'noReset': True # 保留 session 資訊,可以避免重新登錄 }
接著看一下如何獲取微信通訊錄名字(備注)串列?代碼實作如下:
# 獲取通訊錄串列 def get_address_list(): driver.find_elements_by_id('com.tencent.mm:id/cn_')[1].click() # 獲取昵稱(備注) address_list = driver.find_elements_by_id('com.tencent.mm:id/dy5') remarks = [] for address in address_list: remark = address.get_attribute("content-desc") # 排除自己和微信官方號 if remark != "自己的微信名" and "微信" not in remark: remarks.append(remark) return remarks
取到了微信通訊錄串列之后,我們就可以對其進行遍歷檢測了,下面看一下如何實作檢測自己的微信是否被刪,代碼實作如下:
# 判斷是否被刪 def is_delete(remark, count): if count == "1": time.sleep(2) print('點擊微信搜索框') driver.find_element_by_id('com.tencent.mm:id/cn1').click() time.sleep(2) print('在搜索框輸入搜索資訊') driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(remark) time.sleep(2) print('點擊搜索到的好友') driver.find_element_by_id('com.tencent.mm:id/tm').click() time.sleep(2) # 轉賬 driver.find_element_by_id('com.tencent.mm:id/aks').click() time.sleep(2) driver.find_elements_by_id('com.tencent.mm:id/pa')[5].click() time.sleep(2) driver.find_element_by_id('com.tencent.mm:id/cx_').click() time.sleep(2) driver.find_element_by_id('com.tencent.mm:id/cxi').click() time.sleep(5) # 判斷是否被刪 is_exist = is_element_exist('com.tencent.mm:id/jh') if is_exist is True: return remark else: return False
上述方法中,如果檢測到是刪了自己微信的人就回傳那個人的微信名(備注),然后我們將這些人記錄起來;如果檢測到不是洗掉自己微信的人就回傳 False,
上述程序執行完了之后,我們就可以獲取到所有刪了自己微信的人了,接下來我們就可以將這些人都從自己微信通訊錄中洗掉了,洗掉實作的代碼如下:
# 兄弟們都放假了嗎?我給大家準備了大量的學習資料、電子書、視頻教程啥的,正好有時間可以提升一下自己 # 直接這個學習群自取就好了 708525271 # 洗掉把自己洗掉的人 def del_person(nicks): for inx, val in enumerate(nicks): time.sleep(2) if inx == 0: print('在搜索框輸入搜索資訊') driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(val) else: time.sleep(2) print('點擊微信搜索框') driver.find_element_by_id('com.tencent.mm:id/cn1').click() print('在搜索框輸入搜索資訊') time.sleep(1) driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(val) time.sleep(2) print('點擊搜索到的人') driver.find_element_by_id('com.tencent.mm:id/tm').click() time.sleep(2) print('點擊聊天對話框右上角...') driver.find_element_by_id('com.tencent.mm:id/cj').click() time.sleep(2) print('點擊頭像') driver.find_element_by_id('com.tencent.mm:id/f3y').click() time.sleep(2) print('點擊聯系人右上角...') driver.find_element_by_id('com.tencent.mm:id/cj').click() time.sleep(2) print('點擊洗掉按鈕') driver.find_element_by_id('com.tencent.mm:id/g6f').click() time.sleep(2) print('點擊彈出框中的洗掉') driver.find_element_by_id('com.tencent.mm:id/doz').click()
至此,我們就利用 Python + Appium 實作了自動化找出微信中洗掉自己的人并將其洗掉的作業了,
好了今天的分享就到這里結束了,咱們下次見!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/541809.html
標籤:Python
