利用Python找出刪除自己微信的好友并將他們自動(dòng)化刪除
概述
你是否有微信被刪了好友不自知,還傻傻的給對(duì)方發(fā)消息,結(jié)果出現(xiàn)了下圖中那尷尬的一幕的經(jīng)歷呢?其實(shí)我們可以用Python提前把他們找出來并自動(dòng)化刪除避免尷尬的。
平時(shí)一直認(rèn)為自己的心里素質(zhì)過硬,不過遇到這種情況 ...
在我緩了半個(gè)鐘頭(半分鐘)之后,緩緩拿出了手機(jī),打開微信,找到通訊錄中的 ABC
,默默地按下了刪除按鈕,此刻的我心如止水 ...
好了,我們回到正題,為了避免再次出現(xiàn)上述情況,我決定把微信通訊錄中刪除了自己的人全部找出來并且刪除,之前我已經(jīng)在網(wǎng)上了解到檢查自己的微信是否被刪比較好的方式就是轉(zhuǎn)賬,通過轉(zhuǎn)賬我們可以實(shí)現(xiàn)無痕檢測(cè)。
下面我們通過兩張圖片直觀的看一下微信被刪前后給別人轉(zhuǎn)賬的效果:
現(xiàn)在已經(jīng)知道了檢測(cè)方式,正在我準(zhǔn)備挨個(gè)檢測(cè)時(shí),無意識(shí)的滑動(dòng)了微信通訊錄列表,100、200 ... 500 ...
我去!什么時(shí)候加了這么多人,滑動(dòng)列表的同時(shí)我順勢(shì)掃了一眼微信名字:A賣保險(xiǎn)、B辦理信用卡、C游泳健身、D賣保健品 ... 此刻我知道了微信通訊錄中有這么多人的玄機(jī),但是有個(gè)問題,這么多人我挨個(gè)手動(dòng)執(zhí)行轉(zhuǎn)賬還不累屎了 ...
如果手動(dòng)執(zhí)行的方式行不通,那么可以通過編程的方式自動(dòng)化執(zhí)行嗎?想到這里我陷入了沉思 ...
突然我腦中閃了一下(不是抽筋哈),思緒漸明,前幾天我不是寫了一篇Python + Appium 自動(dòng)化操作微信入門嗎?用這個(gè)應(yīng)該就可以實(shí)現(xiàn),編程實(shí)現(xiàn)的基本思路如下:
- 獲取微信通訊錄列表中每個(gè)人的名字(備注)并記錄,這個(gè)是不會(huì)有重復(fù)的,因?yàn)榧词乖谥凹雍糜褧r(shí)有重復(fù)的,自己也會(huì)在備注時(shí)給改了
- 遍歷獲取到的通訊錄列表,分別對(duì)每一個(gè)人執(zhí)行轉(zhuǎn)賬操作,如果檢測(cè)到是刪除自己的人就對(duì)其執(zhí)行刪除操作,如果檢測(cè)到不是刪除自己的人則繼續(xù)檢測(cè)下一個(gè)人,依次往復(fù)循環(huán)
環(huán)境
因之前在模擬器上測(cè)試 Appium 模擬微信轉(zhuǎn)賬可能有點(diǎn)問題,因此本文使用真機(jī)實(shí)現(xiàn)。
先簡(jiǎn)單介紹一下真機(jī)環(huán)境,下面一起來看一下相應(yīng)步驟。
從桌角下取出我的小米5s手機(jī)(MIUI10.2、Android8.0.0),擦擦灰塵后用數(shù)據(jù)線將其連到自己的電腦上
手機(jī)充了一會(huì)電之后開機(jī),打開微信登錄自己的微信號(hào)
在手機(jī)中依次執(zhí)行(點(diǎn)擊):設(shè)置->我的設(shè)備->全部參數(shù)->MIUI版本(多次點(diǎn)擊,開啟開發(fā)者模式)->返回設(shè)置列表->更多設(shè)置->開發(fā)者選項(xiàng)->開啟開發(fā)者選項(xiàng)并分別開啟:USB調(diào)試、USB安裝、USB調(diào)試(安全設(shè)置)選項(xiàng),如圖所示:
此時(shí)手機(jī)上會(huì)彈出USB的用途彈框,我們選擇傳輸文件(MTP)即可,如圖所示:
在電腦 CMD 中執(zhí)行 adb devices
命令,看是否能找到自己的手機(jī),比如下圖所示就是成功的結(jié)果了
在上面步驟中你可能出現(xiàn)找不到手機(jī)的情況,通常這種情況是驅(qū)動(dòng)問題,這里介紹一種簡(jiǎn)單的處理方式:下載一個(gè)驅(qū)動(dòng)精靈,安裝啟動(dòng)之后點(diǎn)擊驅(qū)動(dòng)管理,之后安裝相應(yīng)驅(qū)動(dòng)即可解決,如圖所示:
通過上面的一系列操作,我們已經(jīng)處理好了真機(jī)環(huán)境了。
Appium 的環(huán)境本文就不說了,如果不清楚的話,可以看一下:Python + Appium 自動(dòng)化操作微信入門。
實(shí)現(xiàn)
下面我們開始手動(dòng)敲代碼,如果對(duì) Appium 基本代碼操作不了解的話,還是可以去看一下我之前寫的這篇:Python + Appium 自動(dòng)化操作微信入門,真機(jī)與模擬器的使用基本一樣。
首先看一下相應(yīng)參數(shù)配置,代碼實(shí)現(xiàn)如下:
desired_caps?=?{ ????"platformName":?"Android",?#?系統(tǒng) ????"platformVersion":?"8.0.0",?#?系統(tǒng)本號(hào) ????"deviceName":?"m5s",?#?設(shè)備名 ????"appPackage":?"com.tencent.mm",?#?包名 ????"appActivity":?".ui.LauncherUI",?#?app?啟動(dòng)時(shí)主?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") ????????#?排除自己和微信官方號(hào) ????????if?remark?!=?"自己的微信名"?and?"微信"?not?in?remark: ????????????remarks.append(remark) ????return?remarks
取到了微信通訊錄列表之后,我們就可以對(duì)其進(jìn)行遍歷檢測(cè)了,下面看一下如何實(shí)現(xiàn)檢測(cè)自己的微信是否被刪,代碼實(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
上述方法中,如果檢測(cè)到是刪了自己微信的人就返回那個(gè)人的微信名(備注),然后我們將這些人記錄起來;如果檢測(cè)到不是刪除自己微信的人就返回 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)擊聊天對(duì)話框右上角...') ????????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)了自動(dòng)化找出微信中刪除自己的人并將其刪除的工作了。
以上就是利用Python找出刪除自己微信的好友并將他們自動(dòng)化刪除的詳細(xì)內(nèi)容,更多關(guān)于Python微信好友刪除的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 使用python實(shí)現(xiàn)自動(dòng)化控制電腦版微信
- Python實(shí)現(xiàn)微信高效自動(dòng)化操作
- Python+Appium自動(dòng)化操作微信的教程分享
- Python實(shí)現(xiàn)APP自動(dòng)化發(fā)微信群消息的示例代碼
- python實(shí)現(xiàn)半自動(dòng)化發(fā)送微信信息
- 基于python實(shí)現(xiàn)微信收紅包自動(dòng)化測(cè)試腳本(測(cè)試用例)
- Python+Appium實(shí)現(xiàn)自動(dòng)化清理微信僵尸好友的方法
- Python wxauto 庫(kù)解鎖微信自動(dòng)化的無限可能(示例代碼)
相關(guān)文章
python如何獲取apk的packagename和activity
這篇文章主要介紹了python如何獲取apk的packagename和activity,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01PyQt5中多線程模塊QThread使用方法的實(shí)現(xiàn)
這篇文章主要介紹了PyQt5中多線程模塊QThread使用方法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01python 隊(duì)列基本定義與使用方法【初始化、賦值、判斷等】
這篇文章主要介紹了python 隊(duì)列基本定義與使用方法,結(jié)合實(shí)例形式分析了Python隊(duì)列的定義、初始化、賦值、判斷等相關(guān)操作技巧,需要的朋友可以參考下2019-10-10Python使用pylab庫(kù)實(shí)現(xiàn)畫線功能的方法詳解
這篇文章主要介紹了Python使用pylab庫(kù)實(shí)現(xiàn)畫線功能的方法,結(jié)合具體實(shí)例分析了Python使用pylab庫(kù)的相關(guān)函數(shù)實(shí)現(xiàn)畫線功能的操作技巧,并附帶說明了相關(guān)函數(shù)與參數(shù)功能,需要的朋友可以參考下2017-06-06