婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

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

前言

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

準(zhǔn)備

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


最開始畫的流程圖,然后按照流程圖去實現(xiàn)操作流程和邏輯。初步實現(xiàn)完成后進(jìn)行調(diào)試,過程中不少邏輯不嚴(yán)謹(jǐn)?shù)牡胤剑约耙恍┛蚣茏詭У目樱罱K總算可以一次性掃描了。但是其中還是存在個別的坑需要手動處理一下。暫時先記錄下來,等以后看情況優(yōu)化吧。
遇到暫?;臼橇奶齑白R別不到了,可以手動上滑一下,讓程序識別下一個聊天窗口。需要先登陸微信號。

代碼

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('系統(tǒng)版本號(platformVersion): ')
# deviceName = input('設(shè)備名稱(deviceName):')


desired_caps = {
    "platformName": "Android",  # 系統(tǒng)
    "platformVersion": '10.0',  # 系統(tǒng)版本號
    # "platformVersion": platformVersion,  # 系統(tǒng)版本號
    "deviceName": 'b68548ed',  # 設(shè)備名
    # "deviceName": deviceName,  # 設(shè)備名
    "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)
    # 設(shè)置等待
    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=\"當(dāng)前所在頁面,與的聊天\"]/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:
                # 進(jìn)入第一個聊天窗口,公眾號為1,用戶元素定位從2開始,一頁最多12,每滑動屏幕從新開始到12.
                g73 = wait.until(EC.element_to_be_clickable(
                    (By.XPATH, "http://android.widget.FrameLayout[@content-desc='當(dāng)前所在頁面,與的聊天']/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("進(jìn)入了第%d個好友聊天窗口"%(count))
                count += 1
            else:
                n -= 1
                g73 = wait.until(EC.element_to_be_clickable(
                    (By.XPATH, "http://android.widget.FrameLayout[@content-desc='當(dāng)前所在頁面,與的聊天']/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("進(jìn)入了第%d個好友聊天窗口"%(count))
                count += 1
            # 判斷聊天窗是否有發(fā)送消息的元素
            is_weichat = is_element_exist(driver, "id", "com.tencent.mm:id/ijq")
            if is_weichat == True:
                while True:
            #     # 有發(fā)消息則點擊
                    wait.until(EC.element_to_be_clickable(
                    (By.ID, "com.tencent.mm:id/ijq"))).click()
                    print("點擊了發(fā)消息")
                    #點擊+號
                    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('點擊+號')
                        #判斷是否為轉(zhuǎn)賬
                        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 == "轉(zhuǎn)賬":
                        # 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:
                            #點擊轉(zhuǎn)賬
                            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('點擊轉(zhuǎn)賬')
                            #輸入金額0.01
                            el6 = wait.until(EC.element_to_be_clickable((By.ID,"com.tencent.mm:id/jf4")))
                            el6.send_keys("0.01")
                            print('輸入金額')
                            #點擊確認(rèn)轉(zhuǎn)賬
                            el7 =  wait.until(EC.element_to_be_clickable((By.ID,"com.tencent.mm:id/e6c")))
                            el7.click()
                            print('點擊確認(rèn)轉(zhuǎn)賬')
                            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:
                            #沒有轉(zhuǎn)賬則返回到首頁
                            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異常')                    

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


不是好友的名單會在當(dāng)前目錄生成一個txt文件進(jìn)行保存


偶然出現(xiàn)幾個異常,不知道是什么原因


總的來說功能基本都已經(jīng)實現(xiàn)了,還有細(xì)節(jié)問題后面看情況優(yōu)化吧

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

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

標(biāo)簽:潛江 銅川 通遼 常德 呂梁 黑龍江 阿里 株洲

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python自動掃描出微信不是好友名單的方法》,本文關(guān)鍵詞  Python,自動,掃,描出,微信,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python自動掃描出微信不是好友名單的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python自動掃描出微信不是好友名單的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    韩国精品主播一区二区在线观看 | 亚洲精品菠萝久久久久久久| 亚洲国产一区二区三区| 国产日韩欧美综合一区| 日韩欧美一级精品久久| 日韩在线播放一区二区| 国产精品久久久久三级| 欧美一区二区三区四区视频| 色素色在线综合| 欧美性色综合网| 亚洲高清免费在线| 7777精品伊人久久久大香线蕉最新版| 天天色 色综合| 色婷婷激情综合| 久久99蜜桃精品| 一区二区三区四区精品在线视频| 91蜜桃视频在线| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲免费观看高清在线观看| 99久久免费国产| 欧美人xxxx| 精品国产乱码久久久久久蜜臀| 日韩中文字幕亚洲一区二区va在线| 欧美日韩国产成人在线免费| 亚洲国产精品综合小说图片区| 国产一区二区三区在线观看免费 | 欧美色偷偷大香| 国产麻豆视频一区二区| 欧美自拍偷拍午夜视频| 欧美日韩一区二区三区在线看| 精品影视av免费| 国产伦精品一区二区三区在线观看| 日韩免费一区二区| 亚洲精品视频在线| 欧美日韩国产首页| 中文字幕一区二区三区精华液 | 亚洲丰满少妇videoshd| 亚洲国产精品一区二区久久| 欧美日韩国产影片| 亚洲日本在线天堂| 欧美激情在线观看视频免费| 丝袜国产日韩另类美女| 欧美精品18+| 夜夜爽夜夜爽精品视频| 国产精品美女久久久久aⅴ | 国产电影一区在线| 日韩一区二区免费视频| 亚洲一区二区三区三| 国产成人小视频| 欧美不卡一区二区| 免费在线观看一区| 亚洲午夜精品久久久久久久久| 日韩视频一区二区三区| 精品一区二区精品| 中文子幕无线码一区tr| 99视频在线精品| 日韩高清不卡一区二区三区| 欧美成人精品二区三区99精品| 狠狠久久亚洲欧美| 国产精品网曝门| 欧美日韩视频第一区| va亚洲va日韩不卡在线观看| 亚洲国产精品嫩草影院| 国产欧美一区二区在线| 国内成人精品2018免费看| 亚洲三级小视频| 精品捆绑美女sm三区| 欧美一区二区二区| 色综合色综合色综合| 亚洲制服丝袜av| 国产精品久久久久9999吃药| 欧美在线不卡一区| 中文字幕一区不卡| 美女视频黄免费的久久| 91网站最新地址| 欧美日本国产视频| 亚洲宅男天堂在线观看无病毒| 不卡电影免费在线播放一区| 精品国产乱码久久久久久免费| 国产精品中文字幕一区二区三区| 亚洲欧洲另类国产综合| 激情偷乱视频一区二区三区| 亚洲精品一区二区三区蜜桃下载| 亚洲午夜精品在线| 99久久久久久| 亚洲人成伊人成综合网小说| 成人性生交大片免费| 亚洲精品老司机| 国产精品免费观看视频| 日韩av成人高清| 久久九九99视频| 国产成人一级电影| 国产精品美女久久久久av爽李琼 | 色综合久久久久久久久久久| 久久国产尿小便嘘嘘| 久久精品一区二区三区不卡| 日本不卡视频在线| 99re成人精品视频| 国产精品资源站在线| 精品福利一区二区三区免费视频| 麻豆精品一二三| 午夜久久久久久| 精品国产一区二区精华| 日本系列欧美系列| 色婷婷亚洲综合| 久久嫩草精品久久久精品| 国产成人av电影在线播放| 日本不卡免费在线视频| 欧美一级片在线| 在线精品视频免费播放| 日韩一区在线免费观看| 91麻豆精品久久久久蜜臀| 91视视频在线直接观看在线看网页在线看| 久久婷婷成人综合色| 久久综合九色综合97婷婷| 欧美日韩在线三区| 欧美大片一区二区| 97久久超碰精品国产| 亚洲电影一区二区| 久久精品视频一区二区| 欧美成人女星排行榜| 欧美日韩一级片在线观看| 99在线精品视频| 97精品电影院| 精品在线播放午夜| 老司机免费视频一区二区三区| 国产日产欧美精品一区二区三区| 麻豆精品在线播放| 91在线一区二区| 日韩欧美国产不卡| 亚洲三级在线播放| 亚洲综合一区在线| 国产精品高潮久久久久无| 国产精品久久一级| 国产一区在线看| 水蜜桃久久夜色精品一区的特点| 亚洲精品视频在线观看网站| 欧美在线观看禁18| 日本伊人色综合网| 欧美激情中文不卡| 欧美亚洲精品一区| 国产精品资源站在线| 亚洲另类在线一区| 精品入口麻豆88视频| 国产伦精品一区二区三区免费| 国产精品理伦片| 在线视频综合导航| 久久疯狂做爰流白浆xx| 国产精品美女一区二区三区| 欧美顶级少妇做爰| 成人精品视频网站| 国产精品素人视频| 欧美日韩久久久久久| 久久久精品黄色| 久久精品国内一区二区三区 | 成人免费视频在线观看| 不卡一区二区在线| 美女www一区二区| 日韩视频在线你懂得| 18成人在线观看| 日韩欧美电影在线| 国产曰批免费观看久久久| 日韩欧美二区三区| 久久99久久久久久久久久久| 欧美一级日韩免费不卡| 天天操天天干天天综合网| 欧美一区二区在线看| 精品系列免费在线观看| 久久久91精品国产一区二区精品| av中文字幕一区| 在线免费亚洲电影| 中文字幕免费观看一区| 欧美一级二级在线观看| 欧美日韩国产综合久久 | 亚洲综合无码一区二区| 91在线精品一区二区三区| 亚洲成av人**亚洲成av**| 久久婷婷久久一区二区三区| a亚洲天堂av| 亚洲成精国产精品女| 久久久亚洲精华液精华液精华液| 欧美日本在线播放| 丁香五精品蜜臀久久久久99网站| 亚洲综合色视频| 亚洲综合免费观看高清完整版在线 | 波多野洁衣一区| 亚洲欧美日韩系列| 555夜色666亚洲国产免| 午夜免费久久看| 久久久99久久| 91视频www| 色综合久久综合中文综合网| 欧美福利电影网| 亚洲国产精品综合小说图片区| 欧美日韩高清一区二区三区| 中文字幕一区二区三中文字幕| 成人国产免费视频| 国产精品一级片在线观看| 欧美韩日一区二区三区| 久久久综合网站|