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

主頁 > 知識庫 > Python自動掃描出微信不是好友名單的方法

Python自動掃描出微信不是好友名單的方法

熱門標簽:武漢外呼系統平臺 沈陽外呼系統呼叫系統 池州外呼調研線路 外呼系統哪些好辦 沈陽人工外呼系統價格 富錦商家地圖標注 如何申請400電話費用 江西省地圖標注 沈陽防封電銷卡品牌

前言

最近找幾個老友準備聊天發現幾個已經被刪除好友名單,做為潛水黨多年的我已經不知道成為多少人的黑名單,但是好友列表卻依然有不是好友的名單,面對龐大的好友數量想要清除談何容易。雖然可以發消息給所有人,來識別是否是好友,但是畢竟打擾到了其他人,經過一番查詢發現點擊轉賬時會提示不是好友,這里只是點擊轉賬并不是真的轉賬哦。做為一名技術潛水黨,肯定要低調的辦好事情。之前已經用appium玩過自動化了,那么這次就輕車熟路了。

準備

1.Appium環境搭建
環境搭建這里不再介紹,需要的可以看我之前的文章或者百度
2.手動操作流程圖轉自動操作流程圖


最開始畫的流程圖,然后按照流程圖去實現操作流程和邏輯。初步實現完成后進行調試,過程中不少邏輯不嚴謹的地方,以及一些框架自帶的坑,最終總算可以一次性掃描了。但是其中還是存在個別的坑需要手動處理一下。暫時先記錄下來,等以后看情況優化吧。
遇到暫停基本是聊天窗識別不到了,可以手動上滑一下,讓程序識別下一個聊天窗口。需要先登陸微信號。

代碼

from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
from selenium.common.exceptions import StaleElementReferenceException

# platformVersion = input('系統版本號(platformVersion): ')
# deviceName = input('設備名稱(deviceName):')


desired_caps = {
    "platformName": "Android",  # 系統
    "platformVersion": '10.0',  # 系統版本號
    # "platformVersion": platformVersion,  # 系統版本號
    "deviceName": 'b68548ed',  # 設備名
    # "deviceName": deviceName,  # 設備名
    "appPackage": "com.tencent.mm",  # 包名
    "appActivity": ".ui.LauncherUI",  # app 啟動時主 Activity
    'unicodeKeyboard': True,  # 使用自帶輸入法
    'noReset': True  # 保留 session 信息,可以避免重新登錄
}


def is_element_exist(driver, by, value):
    """判斷元素是否存在"""
    try:
        driver.find_element(by=by, value=value)
    except Exception as e:
        return False
    else:
        return True


def break_key(n):
    """點擊返回按鈕"""
    for i in range(n):
        el1 =  wait.until(EC.element_to_be_clickable((By.ACCESSIBILITY_ID,"返回")))
        el1.click()

def swipe_up():
    """向上滑動屏幕"""
    # 獲取屏幕的size
    size = driver.get_window_size()
    # 獲取屏幕寬度 width
    width = size['width']
    # 獲取屏幕高度 height
    height = size['height']
    x1 = width*0.5
    y1 = height*0.45
    y2 = height*0.3
    driver.swipe(x1,y1,x1,y2,3000)
    print("向上滑動")
    

if __name__ == '__main__':
    driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
    # 設置等待
    wait = WebDriverWait(driver, 300)
    status = True
    n = 2
    count = 1   
    while status:
        try:
            # 點擊通訊錄
            a1 = wait.until(EC.element_to_be_clickable(
                (By.XPATH, "http://android.widget.FrameLayout[@content-desc=\"當前所在頁面,與的聊天\"]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.RelativeLayout[2]/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.ImageView")))
            a1.click()
            #向上滑動
            swipe_up()
            if n  13:
                # 進入第一個聊天窗口,公眾號為1,用戶元素定位從2開始,一頁最多12,每滑動屏幕從新開始到12.
                g73 = wait.until(EC.element_to_be_clickable(
                    (By.XPATH, "http://android.widget.FrameLayout[@content-desc='當前所在頁面,與的聊天']/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.FrameLayout/com.tencent.mm.ui.mogic.WxViewPager/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.ListView/android.widget.LinearLayout[%d]/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.view.View"%(n))))
                g73.click()
                print("進入了第%d個好友聊天窗口"%(count))
                count += 1
            else:
                n -= 1
                g73 = wait.until(EC.element_to_be_clickable(
                    (By.XPATH, "http://android.widget.FrameLayout[@content-desc='當前所在頁面,與的聊天']/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.FrameLayout/com.tencent.mm.ui.mogic.WxViewPager/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.ListView/android.widget.LinearLayout[%d]/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.view.View"%(n))))
                g73.click()
                print("進入了第%d個好友聊天窗口"%(count))
                count += 1
            # 判斷聊天窗是否有發送消息的元素
            is_weichat = is_element_exist(driver, "id", "com.tencent.mm:id/ijq")
            if is_weichat == True:
                while True:
            #     # 有發消息則點擊
                    wait.until(EC.element_to_be_clickable(
                    (By.ID, "com.tencent.mm:id/ijq"))).click()
                    print("點擊了發消息")
                    #點擊+號
                    is_jia = is_element_exist(driver, 'id', 'com.tencent.mm:id/ay7')
                    #判斷是否有加號
                    if is_jia == True:
                        el4 = wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/ay7")))
                        el4.click()
                        print('點擊+號')
                        #判斷是否為轉賬
                        is_zhuanzhang = wait.until(EC.element_to_be_clickable((By.XPATH,"http://android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.view.ViewGroup/android.widget.GridView/android.widget.LinearLayout[6]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.TextView")))
                        if is_zhuanzhang.text == "轉賬":
                        # is_zhuanzhang = is_element_exist(driver, 'xpath', '//android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.view.ViewGroup/android.widget.GridView/android.widget.LinearLayout[6]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.TextView')
                        # if is_zhuanzhang == True:
                            #點擊轉賬
                            el5 =  wait.until(EC.element_to_be_clickable((By.XPATH,"http://android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.view.ViewGroup/android.widget.GridView/android.widget.LinearLayout[6]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.ImageView[2]")))
                            el5.click()
                            print('點擊轉賬')
                            #輸入金額0.01
                            el6 = wait.until(EC.element_to_be_clickable((By.ID,"com.tencent.mm:id/jf4")))
                            el6.send_keys("0.01")
                            print('輸入金額')
                            #點擊確認轉賬
                            el7 =  wait.until(EC.element_to_be_clickable((By.ID,"com.tencent.mm:id/e6c")))
                            el7.click()
                            print('點擊確認轉賬')
                            time.sleep(2)
                            #判斷是否有知道了
                            is_not_friend = is_element_exist(driver,'id','com.tencent.mm:id/ffp')
                            if is_not_friend == True:
                            #點擊知道了
                                el8 =  wait.until(EC.element_to_be_clickable((By.ID,"com.tencent.mm:id/ffp")))
                                el8.click()
                                print('點擊知道了')
                                #獲取用戶名稱并打印
                                el9 =  wait.until(EC.element_to_be_clickable((By.ID,"com.tencent.mm:id/h2k")))
                                print('不是好友的微信名稱為:',el9.text)
                                with open('weixin.txt','a+')as f:
                                    f.write('不是好友的微信名稱:' + el9.text + '\n')
                                driver.keyevent(4)
                                driver.keyevent(4)
                                driver.keyevent(4)
                                driver.keyevent(4)
                                print('返回')
                                n += 1                
                                break
                            else:
                                #沒有知道則返回
                                driver.keyevent(4)
                                break_key(2)
                                n += 1
                                print('返回')
                                break
                        else:
                            #沒有轉賬則返回到首頁
                            driver.keyevent(4)
                            driver.keyevent(4) 
                            print('返回')
                            n += 1
                            break

                    else:
                        #沒有+號則返回到首頁
                        driver.keyevent(4)
                        driver.keyevent(4)
                        print('返回')
                        n += 1
                        break
        except StaleElementReferenceException:
            print('捕獲StaleElementReferenceException異常')                    

這里已經掃描到200多個好友了,其中可能需要手動上滑一下


不是好友的名單會在當前目錄生成一個txt文件進行保存


偶然出現幾個異常,不知道是什么原因


總的來說功能基本都已經實現了,還有細節問題后面看情況優化吧

到此這篇關于Python自動掃描出微信不是好友名單的方法的文章就介紹到這了,更多相關Python自動掃描出微信好友內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解Python自動化之文件自動化處理
  • Python自動化之批量處理工作簿和工作表
  • python自動化之如何利用allure生成測試報告
  • 用python自動生成日歷
  • 用Python自動下載網站所有文件
  • 用Python寫腳本自動評論再也不怕碰到噴子

標簽:潛江 銅川 通遼 常德 呂梁 黑龍江 阿里 株洲

巨人網絡通訊聲明:本文標題《Python自動掃描出微信不是好友名單的方法》,本文關鍵詞  Python,自動,掃,描出,微信,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python自動掃描出微信不是好友名單的方法》相關的同類信息!
  • 本頁收集關于Python自動掃描出微信不是好友名單的方法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产精品久久久久久久裸模| 久久女同性恋中文字幕| 国产成人av电影在线播放| 日韩国产精品大片| 亚洲高清在线精品| 亚洲免费视频成人| 中文字幕一区二区日韩精品绯色| 日韩午夜在线观看视频| 欧美日韩一区二区三区视频| 欧美美女一区二区在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 精品一区二区三区久久久| 亚洲成人7777| 午夜精品久久久久久久久| 一区二区三区四区乱视频| 亚洲人成网站影音先锋播放| 亚洲欧洲99久久| 亚洲欧美日本韩国| 亚洲第一福利一区| 久久综合99re88久久爱| 亚洲精品一区二区三区福利| 国产午夜精品久久| 亚洲天堂免费看| 亚洲婷婷综合久久一本伊一区 | 日韩欧美国产综合在线一区二区三区| 欧美日韩一二三区| 欧美不卡在线视频| 亚洲国产高清不卡| 亚洲午夜日本在线观看| 九九国产精品视频| av成人老司机| 欧美蜜桃一区二区三区| 国产日韩欧美不卡在线| 亚洲精品国久久99热| 精品一区二区日韩| 一道本成人在线| 欧美精品乱码久久久久久按摩| 337p日本欧洲亚洲大胆精品 | 成人禁用看黄a在线| av爱爱亚洲一区| 欧美va亚洲va香蕉在线| 国产精品二三区| 日欧美一区二区| av激情成人网| 精品粉嫩超白一线天av| 亚洲精品欧美在线| 丁香婷婷综合色啪| 欧美精品欧美精品系列| 亚洲女人****多毛耸耸8| 国精产品一区一区三区mba视频| 99久久精品国产一区二区三区| 日韩一区二区麻豆国产| 五月天国产精品| 欧美在线视频日韩| 一区二区三区精品久久久| 成人理论电影网| 久久久91精品国产一区二区精品| 爽爽淫人综合网网站| 在线观看一区二区精品视频| 中文字幕av不卡| 97se亚洲国产综合自在线观| 国产片一区二区| 极品少妇一区二区| 欧美电影免费观看完整版| 成人aa视频在线观看| 欧美不卡一二三| 麻豆久久久久久| 精品国产一区二区三区忘忧草| 美女在线观看视频一区二区| 91精品免费观看| 免费xxxx性欧美18vr| 久久先锋资源网| 色香蕉成人二区免费| 亚洲黄色av一区| 99久久伊人精品| 亚洲国产成人va在线观看天堂| 一本到高清视频免费精品| 亚洲精品v日韩精品| 欧美精品一级二级三级| 狠狠色狠狠色综合系列| 中文字幕巨乱亚洲| 欧美午夜片在线看| 免费国产亚洲视频| 国产精品美女久久久久久久久久久 | 免费欧美高清视频| 久久精品夜色噜噜亚洲aⅴ| 在线观看欧美日本| 日韩高清中文字幕一区| 国产精品视频九色porn| 欧美日韩一区二区三区四区| 国产伦精品一区二区三区视频青涩| 中文字幕在线一区免费| 欧美一级免费大片| 一本到高清视频免费精品| 国内精品视频666| 三级在线观看一区二区| 亚洲视频一区二区在线| 久久久久久久久久久久久女国产乱 | 亚洲色图制服诱惑 | 黄页视频在线91| 亚洲一区二区精品视频| 国产精品二区一区二区aⅴ污介绍| 69p69国产精品| 欧美日本精品一区二区三区| 91尤物视频在线观看| 国产一区二区看久久| 日韩精品国产欧美| 亚洲第一狼人社区| 亚洲一二三四区不卡| 一区二区三区日韩欧美| 亚洲欧美成aⅴ人在线观看| 欧美国产国产综合| 国产精品麻豆网站| 成人免费视频在线观看| 中文字幕日本不卡| 一级精品视频在线观看宜春院| 国产精品青草综合久久久久99| 国产区在线观看成人精品| 国产喂奶挤奶一区二区三区| 久久久av毛片精品| 欧美经典三级视频一区二区三区| 久久日韩精品一区二区五区| 精品成人佐山爱一区二区| 久久久99久久| 亚洲乱码一区二区三区在线观看| 亚洲精品写真福利| 亚洲h动漫在线| 国产做a爰片久久毛片| 国产91丝袜在线18| 在线免费观看视频一区| 91精品国产免费| 国产三级三级三级精品8ⅰ区| 中文字幕日韩av资源站| 午夜一区二区三区在线观看| 日本不卡123| 91网上在线视频| 56国语精品自产拍在线观看| 久久影院电视剧免费观看| 国产精品久久久久久一区二区三区| 亚洲欧洲综合另类| 青青国产91久久久久久| 成人黄色av网站在线| 欧美三级三级三级| 国产午夜精品福利| 91亚洲资源网| 精品国产一区二区三区忘忧草| 亚洲靠逼com| 高清成人免费视频| 欧美一区二区三级| 亚洲成a人v欧美综合天堂下载| 国内成人自拍视频| 欧美高清视频一二三区 | 欧美国产乱子伦| 久久99精品网久久| 欧美美女激情18p| 亚洲女与黑人做爰| 99精品视频一区二区三区| 日韩免费高清视频| 水野朝阳av一区二区三区| 欧美中文一区二区三区| 国产精品福利一区二区三区| 韩日精品视频一区| 2023国产精品| 国产精品一区一区三区| 日韩欧美国产午夜精品| 青娱乐精品在线视频| 在线观看91av| 免费人成精品欧美精品| 欧美一区午夜视频在线观看| 一区二区三区欧美久久| 一本久道久久综合中文字幕| 国产精品麻豆欧美日韩ww| www.一区二区| 伊人一区二区三区| 欧美日韩一区二区三区在线看 | 91精品蜜臀在线一区尤物| 午夜欧美在线一二页| 欧美一级精品在线| 麻豆精品久久精品色综合| 2023国产精品自拍| av动漫一区二区| 日韩av电影免费观看高清完整版在线观看 | 亚洲综合丁香婷婷六月香| 欧美精品少妇一区二区三区| 欧美aaaaaa午夜精品| 久久久国产精品麻豆| 99re这里只有精品首页| 丝袜美腿亚洲综合| 中日韩免费视频中文字幕| 色视频一区二区| 久久电影国产免费久久电影 | 日韩精品一区第一页| 国产精品无码永久免费888| 91极品视觉盛宴| 国产精品一区二区三区乱码| 一区二区欧美视频| 国产欧美va欧美不卡在线| 7777精品伊人久久久大香线蕉| 国产.欧美.日韩| 久久99精品网久久|