利用Python找出刪除自己微信的好友并將他們自動化刪除
概述
你是否有微信被刪了好友不自知,還傻傻的給對方發(fā)消息,結(jié)果出現(xiàn)了下圖中那尷尬的一幕的經(jīng)歷呢?其實(shí)我們可以用Python提前把他們找出來并自動化刪除避免尷尬的。

平時一直認(rèn)為自己的心里素質(zhì)過硬,不過遇到這種情況 ...
在我緩了半個鐘頭(半分鐘)之后,緩緩拿出了手機(jī),打開微信,找到通訊錄中的 ABC,默默地按下了刪除按鈕,此刻的我心如止水 ...
好了,我們回到正題,為了避免再次出現(xiàn)上述情況,我決定把微信通訊錄中刪除了自己的人全部找出來并且刪除,之前我已經(jīng)在網(wǎng)上了解到檢查自己的微信是否被刪比較好的方式就是轉(zhuǎn)賬,通過轉(zhuǎn)賬我們可以實(shí)現(xiàn)無痕檢測。
下面我們通過兩張圖片直觀的看一下微信被刪前后給別人轉(zhuǎn)賬的效果:


現(xiàn)在已經(jīng)知道了檢測方式,正在我準(zhǔn)備挨個檢測時,無意識的滑動了微信通訊錄列表,100、200 ... 500 ...
我去!什么時候加了這么多人,滑動列表的同時我順勢掃了一眼微信名字:A賣保險、B辦理信用卡、C游泳健身、D賣保健品 ... 此刻我知道了微信通訊錄中有這么多人的玄機(jī),但是有個問題,這么多人我挨個手動執(zhí)行轉(zhuǎn)賬還不累屎了 ...
如果手動執(zhí)行的方式行不通,那么可以通過編程的方式自動化執(zhí)行嗎?想到這里我陷入了沉思 ...
突然我腦中閃了一下(不是抽筋哈),思緒漸明,前幾天我不是寫了一篇Python + Appium 自動化操作微信入門嗎?用這個應(yīng)該就可以實(shí)現(xiàn),編程實(shí)現(xiàn)的基本思路如下:
- 獲取微信通訊錄列表中每個人的名字(備注)并記錄,這個是不會有重復(fù)的,因?yàn)榧词乖谥凹雍糜褧r有重復(fù)的,自己也會在備注時給改了
- 遍歷獲取到的通訊錄列表,分別對每一個人執(zhí)行轉(zhuǎn)賬操作,如果檢測到是刪除自己的人就對其執(zhí)行刪除操作,如果檢測到不是刪除自己的人則繼續(xù)檢測下一個人,依次往復(fù)循環(huán)
環(huán)境
因之前在模擬器上測試 Appium 模擬微信轉(zhuǎn)賬可能有點(diǎn)問題,因此本文使用真機(jī)實(shí)現(xiàn)。
先簡單介紹一下真機(jī)環(huán)境,下面一起來看一下相應(yīng)步驟。
從桌角下取出我的小米5s手機(jī)(MIUI10.2、Android8.0.0),擦擦灰塵后用數(shù)據(jù)線將其連到自己的電腦上
手機(jī)充了一會電之后開機(jī),打開微信登錄自己的微信號
在手機(jī)中依次執(zhí)行(點(diǎn)擊):設(shè)置->我的設(shè)備->全部參數(shù)->MIUI版本(多次點(diǎn)擊,開啟開發(fā)者模式)->返回設(shè)置列表->更多設(shè)置->開發(fā)者選項->開啟開發(fā)者選項并分別開啟:USB調(diào)試、USB安裝、USB調(diào)試(安全設(shè)置)選項,如圖所示:

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

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

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


通過上面的一系列操作,我們已經(jīng)處理好了真機(jī)環(huán)境了。
Appium 的環(huán)境本文就不說了,如果不清楚的話,可以看一下:Python + Appium 自動化操作微信入門。
實(shí)現(xiàn)
下面我們開始手動敲代碼,如果對 Appium 基本代碼操作不了解的話,還是可以去看一下我之前寫的這篇:Python + Appium 自動化操作微信入門,真機(jī)與模擬器的使用基本一樣。
首先看一下相應(yīng)參數(shù)配置,代碼實(shí)現(xiàn)如下:
desired_caps?=?{
????"platformName":?"Android",?#?系統(tǒng)
????"platformVersion":?"8.0.0",?#?系統(tǒng)本號
????"deviceName":?"m5s",?#?設(shè)備名
????"appPackage":?"com.tencent.mm",?#?包名
????"appActivity":?".ui.LauncherUI",?#?app?啟動時主?Activity
????'unicodeKeyboard':?True,?#?使用自帶輸入法
????'noReset':?True?#?保留?session?信息,可以避免重新登錄
}
接著看一下如何獲取微信通訊錄名字(備注)列表?代碼實(shí)現(xiàn)如下:
#?獲取通訊錄列表
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
取到了微信通訊錄列表之后,我們就可以對其進(jìn)行遍歷檢測了,下面看一下如何實(shí)現(xiàn)檢測自己的微信是否被刪,代碼實(shí)現(xiàn)如下:
#?判斷是否被刪
def?is_delete(remark,?count):
????if?count?==?"1":
????????time.sleep(2)
????????print('點(diǎn)擊微信搜索框')
????????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('點(diǎn)擊搜索到的好友')
????driver.find_element_by_id('com.tencent.mm:id/tm').click()
????time.sleep(2)
????#?轉(zhuǎn)賬
????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。
上述過程執(zhí)行完了之后,我們就可以獲取到所有刪了自己微信的人了,接下來我們就可以將這些人都從自己微信通訊錄中刪除了,刪除實(shí)現(xiàn)的代碼如下:
#?刪除把自己刪除的人
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('點(diǎn)擊微信搜索框')
????????????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('點(diǎn)擊搜索到的人')
????????driver.find_element_by_id('com.tencent.mm:id/tm').click()
????????time.sleep(2)
????????print('點(diǎn)擊聊天對話框右上角...')
????????driver.find_element_by_id('com.tencent.mm:id/cj').click()
????????time.sleep(2)
????????print('點(diǎn)擊頭像')
????????driver.find_element_by_id('com.tencent.mm:id/f3y').click()
????????time.sleep(2)
????????print('點(diǎn)擊聯(lián)系人右上角...')
????????driver.find_element_by_id('com.tencent.mm:id/cj').click()
????????time.sleep(2)
????????print('點(diǎn)擊刪除按鈕')
????????driver.find_element_by_id('com.tencent.mm:id/g6f').click()
????????time.sleep(2)
????????print('點(diǎn)擊彈出框中的刪除')
????????driver.find_element_by_id('com.tencent.mm:id/doz').click()
至此,我們就利用 Python + Appium 實(shí)現(xiàn)了自動化找出微信中刪除自己的人并將其刪除的工作了。
以上就是利用Python找出刪除自己微信的好友并將他們自動化刪除的詳細(xì)內(nèi)容,更多關(guān)于Python微信好友刪除的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python使用tqdm庫實(shí)現(xiàn)循環(huán)打印進(jìn)度條
tqdm是一個用于在Python中添加進(jìn)度條的庫,它可以很容易地集成到while循環(huán)中,這篇文章主要介紹了python循環(huán)打印進(jìn)度條,需要的朋友可以參考下2023-05-05
Python實(shí)現(xiàn)程序判斷季節(jié)的代碼示例
今天小編就為大家分享一篇關(guān)于Python實(shí)現(xiàn)程序判斷季節(jié)的代碼示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01
Python基礎(chǔ)類繼承重寫實(shí)現(xiàn)原理解析
這篇文章主要介紹了Python基礎(chǔ)類繼承重寫實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04
Python實(shí)現(xiàn)OCR識別之pytesseract案例詳解
這篇文章主要介紹了Python實(shí)現(xiàn)OCR識別之pytesseract案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
Selenium自動化測試實(shí)現(xiàn)窗口切換
這篇文章主要介紹了Selenium自動化測試實(shí)現(xiàn)窗口切換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
python中*args與**kwarsg及閉包和裝飾器的用法
這篇文章主要介紹了python中*args與**kwarsg及閉包和裝飾器的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
python實(shí)現(xiàn)web應(yīng)用框架之增加動態(tài)路由
這篇文章主要介紹web應(yīng)用框架如何添加動態(tài)路由,在我們編寫的框架中,我們添加動態(tài)路由,是使用了正則表達(dá)式,同時在注冊的時候,需要注明該路由是請求路由,文中有詳細(xì)的代碼示例,需要的朋友可以參考下2023-05-05
jupyter notebook讀取/導(dǎo)出文件/圖片實(shí)例
這篇文章主要介紹了jupyter notebook讀取/導(dǎo)出文件/圖片實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04

