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