<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        python如何查看微信好友是否刪除自己

        來源:懂視網(wǎng) 責編:小OO 時間:2020-11-27 14:15:12
        文檔

        python如何查看微信好友是否刪除自己

        本文實例為大家分享了python微信好友刪除的具體代碼,供大家參考,具體內(nèi)容如下:#weixin.py#coding:utf-8#。= 0: # 公眾號/服務(wù)號 MemberList.remove(Member) elif Member[';UserName';] in SpecialUsers: # 特殊賬號 MemberList.remove(Member) elif Member[';UserName';].find(';@@';)
        推薦度:
        導(dǎo)讀本文實例為大家分享了python微信好友刪除的具體代碼,供大家參考,具體內(nèi)容如下:#weixin.py#coding:utf-8#。= 0: # 公眾號/服務(wù)號 MemberList.remove(Member) elif Member[';UserName';] in SpecialUsers: # 特殊賬號 MemberList.remove(Member) elif Member[';UserName';].find(';@@';)

        本文實例為大家分享了python微信好友刪除的具體代碼,供大家參考,具體內(nèi)容如下

        #weixin.py
        #coding:utf-8
        # !/usr/bin/env python
        # coding=utf-8
        
        #通過該程序可以發(fā)現(xiàn)被刪除的好友
        
        import os
        import urllib, urllib2
        import re
        import cookielib
        import time
        import xml.dom.minidom
        import json
        import sys
        import math
        
        DEBUG = False
        
        MAX_GROUP_NUM = 35 # 每組人數(shù)
        
        QRImagePath = os.getcwd() + '/qrcode.jpg'
        
        tip = 0
        uuid = ''
        
        base_uri = ''
        redirect_uri = ''
        
        skey = ''
        wxsid = ''
        wxuin = ''
        pass_ticket = ''
        deviceId = 'e000000000000000'
        
        BaseRequest = {}
        
        ContactList = []
        My = []
        
        def getUUID():
         global uuid
        
         url = 'https://login.weixin.qq.com/jslogin'
         params = {
         'appid': 'wx782c26e4c19acffb',
         'fun': 'new',
         'lang': 'zh_CN',
         '_': int(time.time()),
         }
        
         request = urllib2.Request(url=url, data=urllib.urlencode(params))
         response = urllib2.urlopen(request)
         data = response.read()
        
         # print data
        
         # window.QRLogin.code = 200; window.QRLogin.uuid = "oZwt_bFfRg==";
         regx = r'window.QRLogin.code = (d+); window.QRLogin.uuid = "(S+?)"'
         pm = re.search(regx, data)
        
         code = pm.group(1)
         uuid = pm.group(2)
        
         if code == '200':
         return True
        
         return False
        
        def showQRImage():
         global tip
        
         url = 'https://login.weixin.qq.com/qrcode/' + uuid
         params = {
         't': 'webwx',
         '_': int(time.time()),
         }
        
         request = urllib2.Request(url=url, data=urllib.urlencode(params))
         response = urllib2.urlopen(request)
        
         tip = 1
        
         f = open(QRImagePath, 'wb')
         f.write(response.read())
         f.close()
        
         if sys.platform.find('darwin') >= 0:
         os.system('open %s' % QRImagePath)
         elif sys.platform.find('linux') >= 0:
         os.system('xdg-open %s' % QRImagePath)
         else:
         os.system('call %s' % QRImagePath)
        
         print '請使用微信掃描二維碼以登錄'
        
        def waitForLogin():
         global tip, base_uri, redirect_uri
        
         url = 'https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login?tip=%s&uuid=%s&_=%s' % (tip, uuid, int(time.time()))
        
         request = urllib2.Request(url=url)
         response = urllib2.urlopen(request)
         data = response.read()
        
         # print data
        
         # window.code=500;
         regx = r'window.code=(d+);'
         pm = re.search(regx, data)
        
         code = pm.group(1)
        
         if code == '201': # 已掃描
         print '成功掃描,請在手機上點擊確認以登錄'
         tip = 0
         elif code == '200': # 已登錄
         print '正在登錄...'
         regx = r'window.redirect_uri="(S+?)";'
         pm = re.search(regx, data)
         redirect_uri = pm.group(1) + '&fun=new'
         base_uri = redirect_uri[:redirect_uri.rfind('/')]
         elif code == '408': # 超時
         pass
         # elif code == '400' or code == '500':
        
         return code
        
        def login():
         global skey, wxsid, wxuin, pass_ticket, BaseRequest
        
         request = urllib2.Request(url=redirect_uri)
         response = urllib2.urlopen(request)
         data = response.read()
        
         # print data
        
         '''
         <error>
         <ret>0</ret>
         <message>OK</message>
         <skey>xxx</skey>
         <wxsid>xxx</wxsid>
         <wxuin>xxx</wxuin>
         <pass_ticket>xxx</pass_ticket>
         <isgrayscale>1</isgrayscale>
         </error>
         '''
        
         doc = xml.dom.minidom.parseString(data)
         root = doc.documentElement
        
         for node in root.childNodes:
         if node.nodeName == 'skey':
         skey = node.childNodes[0].data
         elif node.nodeName == 'wxsid':
         wxsid = node.childNodes[0].data
         elif node.nodeName == 'wxuin':
         wxuin = node.childNodes[0].data
         elif node.nodeName == 'pass_ticket':
         pass_ticket = node.childNodes[0].data
        
         # print 'skey: %s, wxsid: %s, wxuin: %s, pass_ticket: %s' % (skey, wxsid, wxuin, pass_ticket)
        
         if skey == '' or wxsid == '' or wxuin == '' or pass_ticket == '':
         return False
        
         BaseRequest = {
         'Uin': int(wxuin),
         'Sid': wxsid,
         'Skey': skey,
         'DeviceID': deviceId,
         }
        
         return True
        
        def webwxinit():
         url = base_uri + '/webwxinit?pass_ticket=%s&skey=%s&r=%s' % (pass_ticket, skey, int(time.time()))
         params = {
         'BaseRequest': BaseRequest
         }
        
         request = urllib2.Request(url=url, data=json.dumps(params))
         request.add_header('ContentType', 'application/json; charset=UTF-8')
         response = urllib2.urlopen(request)
         data = response.read()
        
         if DEBUG == True:
         f = open(os.getcwd() + '/webwxinit.json', 'wb')
         f.write(data)
         f.close()
        
         # print data
        
         global ContactList, My
         dic = json.loads(data)
         ContactList = dic['ContactList']
         My = dic['User']
        
         ErrMsg = dic['BaseResponse']['ErrMsg']
         if len(ErrMsg) > 0:
         print ErrMsg
        
         Ret = dic['BaseResponse']['Ret']
         if Ret != 0:
         return False
        
         return True
        
        def webwxgetcontact():
         url = base_uri + '/webwxgetcontact?pass_ticket=%s&skey=%s&r=%s' % (pass_ticket, skey, int(time.time()))
        
         request = urllib2.Request(url=url)
         request.add_header('ContentType', 'application/json; charset=UTF-8')
         response = urllib2.urlopen(request)
         data = response.read()
        
         if DEBUG == True:
         f = open(os.getcwd() + '/webwxgetcontact.json', 'wb')
         f.write(data)
         f.close()
        
         # print data
        
         dic = json.loads(data)
         MemberList = dic['MemberList']
        
         # 倒序遍歷,不然刪除的時候出問題..
         SpecialUsers = ['newsapp', 'fmessage', 'filehelper', 'weibo', 'qqmail', 'fmessage', 'tmessage', 'qmessage',
         'qqsync', 'floatbottle', 'lbsapp', 'shakeapp', 'medianote', 'qqfriend', 'readerapp', 'blogapp',
         'facebookapp', 'masssendapp', 'meishiapp', 'feedsapp', 'voip', 'blogappweixin', 'weixin',
         'brandsessionholder', 'weixinreminder', 'wxid_novlwrv3lqwv11', 'gh_22b87fa7cb3c',
         'officialaccounts', 'notification_messages', 'wxid_novlwrv3lqwv11', 'gh_22b87fa7cb3c', 'wxitil',
         'userexperience_alarm', 'notification_messages']
         for i in xrange(len(MemberList) - 1, -1, -1):
         Member = MemberList[i]
         if Member['VerifyFlag'] & 8 != 0: # 公眾號/服務(wù)號
         MemberList.remove(Member)
         elif Member['UserName'] in SpecialUsers: # 特殊賬號
         MemberList.remove(Member)
         elif Member['UserName'].find('@@') != -1: # 群聊
         MemberList.remove(Member)
         elif Member['UserName'] == My['UserName']: # 自己
         MemberList.remove(Member)
        
         return MemberList
        
        def createChatroom(UserNames):
         MemberList = []
         for UserName in UserNames:
         MemberList.append({'UserName': UserName})
        
         url = base_uri + '/webwxcreatechatroom?pass_ticket=%s&r=%s' % (pass_ticket, int(time.time()))
         params = {
         'BaseRequest': BaseRequest,
         'MemberCount': len(MemberList),
         'MemberList': MemberList,
         'Topic': '',
         }
        
         request = urllib2.Request(url=url, data=json.dumps(params))
         request.add_header('ContentType', 'application/json; charset=UTF-8')
         response = urllib2.urlopen(request)
         data = response.read()
        
         # print data
        
         dic = json.loads(data)
         ChatRoomName = dic['ChatRoomName']
         MemberList = dic['MemberList']
         DeletedList = []
         for Member in MemberList:
         if Member['MemberStatus'] == 4: # 被對方刪除了
         DeletedList.append(Member['UserName'])
        
         ErrMsg = dic['BaseResponse']['ErrMsg']
         if len(ErrMsg) > 0:
         print ErrMsg
        
         return (ChatRoomName, DeletedList)
        
        def deleteMember(ChatRoomName, UserNames):
         url = base_uri + '/webwxupdatechatroom?fun=delmember&pass_ticket=%s' % (pass_ticket)
         params = {
         'BaseRequest': BaseRequest,
         'ChatRoomName': ChatRoomName,
         'DelMemberList': ','.join(UserNames),
         }
        
         request = urllib2.Request(url=url, data=json.dumps(params))
         request.add_header('ContentType', 'application/json; charset=UTF-8')
         response = urllib2.urlopen(request)
         data = response.read()
        
         # print data
        
         dic = json.loads(data)
         ErrMsg = dic['BaseResponse']['ErrMsg']
         if len(ErrMsg) > 0:
         print ErrMsg
        
         Ret = dic['BaseResponse']['Ret']
         if Ret != 0:
         return False
        
         return True
        
        def addMember(ChatRoomName, UserNames):
         url = base_uri + '/webwxupdatechatroom?fun=addmember&pass_ticket=%s' % (pass_ticket)
         params = {
         'BaseRequest': BaseRequest,
         'ChatRoomName': ChatRoomName,
         'AddMemberList': ','.join(UserNames),
         }
        
         request = urllib2.Request(url=url, data=json.dumps(params))
         request.add_header('ContentType', 'application/json; charset=UTF-8')
         response = urllib2.urlopen(request)
         data = response.read()
        
         # print data
        
         dic = json.loads(data)
         MemberList = dic['MemberList']
         DeletedList = []
         for Member in MemberList:
         if Member['MemberStatus'] == 4: # 被對方刪除了
         DeletedList.append(Member['UserName'])
        
         ErrMsg = dic['BaseResponse']['ErrMsg']
         if len(ErrMsg) > 0:
         print ErrMsg
        
         return DeletedList
        
        def main():
         opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
         urllib2.install_opener(opener)
        
         if getUUID() == False:
         print '獲取uuid失敗'
         return
        
         showQRImage()
         time.sleep(1)
        
         while waitForLogin() != '200':
         pass
        
         os.remove(QRImagePath)
        
         if login() == False:
         print '登錄失敗'
         return
        
         if webwxinit() == False:
         print '初始化失敗'
         return
        
         MemberList = webwxgetcontact()
        
         MemberCount = len(MemberList)
         print '通訊錄共%s位好友' % MemberCount
        
         ChatRoomName = ''
         result = []
         for i in xrange(0, int(math.ceil(MemberCount / float(MAX_GROUP_NUM)))):
         UserNames = []
         NickNames = []
         DeletedList = ''
         for j in xrange(0, MAX_GROUP_NUM):
         if i * MAX_GROUP_NUM + j >= MemberCount:
         break
        
         Member = MemberList[i * MAX_GROUP_NUM + j]
         UserNames.append(Member['UserName'])
         NickNames.append(Member['NickName'].encode('utf-8'))
        
         print '第%s組...' % (i + 1)
         print ', '.join(NickNames)
         print '回車鍵繼續(xù)...'
         raw_input()
        
         # 新建群組/添加成員
         if ChatRoomName == '':
         (ChatRoomName, DeletedList) = createChatroom(UserNames)
         else:
         DeletedList = addMember(ChatRoomName, UserNames)
        
         DeletedCount = len(DeletedList)
         if DeletedCount > 0:
         result += DeletedList
        
         print '找到%s個被刪好友' % DeletedCount
         # raw_input()
        
         # 刪除成員
         deleteMember(ChatRoomName, UserNames)
        
         # todo 刪除群組
        
         resultNames = []
         for Member in MemberList:
         if Member['UserName'] in result:
         NickName = Member['NickName']
         if Member['RemarkName'] != '':
         NickName += '(%s)' % Member['RemarkName']
         resultNames.append(NickName.encode('utf-8'))
        
         print '---------- 被刪除的好友列表 ----------'
         print '
        '.join(resultNames)
         print '-----------------------------------'
        
        # windows下編碼問題修復(fù)
        class UnicodeStreamFilter:
         def __init__(self, target):
         self.target = target
         self.encoding = 'utf-8'
         self.errors = 'replace'
         self.encode_to = self.target.encoding
        
         def write(self, s):
         if type(s) == str:
         s = s.decode('utf-8')
         s = s.encode(self.encode_to, self.errors).decode(self.encode_to)
         self.target.write(s)
        
        if sys.stdout.encoding == 'cp936':
         sys.stdout = UnicodeStreamFilter(sys.stdout)
        
        if __name__ == '__main__':
         print '本程序的查詢結(jié)果可能會引起一些心理上的不適,請小心使用...'
         print '回車鍵繼續(xù)...'
         raw_input()
        
         main()
        
         print '回車鍵結(jié)束'
         raw_input()

        -->

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        python如何查看微信好友是否刪除自己

        本文實例為大家分享了python微信好友刪除的具體代碼,供大家參考,具體內(nèi)容如下:#weixin.py#coding:utf-8#。= 0: # 公眾號/服務(wù)號 MemberList.remove(Member) elif Member[';UserName';] in SpecialUsers: # 特殊賬號 MemberList.remove(Member) elif Member[';UserName';].find(';@@';)
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲av综合av一区二区三区| 久久噜噜噜久久亚洲va久| 亚洲一区二区三区精品视频| 亚欧免费一级毛片| 亚洲乱码无码永久不卡在线 | 99亚偷拍自图区亚洲| 男女免费观看在线爽爽爽视频| 亚洲毛片一级带毛片基地| 999久久久免费精品播放| 亚洲视频在线免费看| 免费观看的毛片大全| 亚洲色精品三区二区一区| 日韩一级免费视频| 免费VA在线观看无码| 久久影视国产亚洲| 久久狠狠躁免费观看2020| 久久精品国产亚洲av日韩| 1000部拍拍拍18勿入免费凤凰福利 | 久久精品国产亚洲AV蜜臀色欲| 在线天堂免费观看.WWW| 亚洲色www永久网站| 日本免费一区尤物| 日韩在线视频免费| 亚洲s色大片在线观看| 男女免费观看在线爽爽爽视频| 亚洲乱亚洲乱妇24p| 亚洲国产午夜福利在线播放| 中文字幕免费观看全部电影| 亚洲最大在线观看| 全黄性性激高免费视频| 水蜜桃视频在线观看免费播放高清 | 亚洲av乱码一区二区三区按摩| 4338×亚洲全国最大色成网站| 久久国产精品免费专区| 亚洲日本一线产区和二线| 国产成人亚洲综合| 国产精品视频免费| 国产精品午夜免费观看网站| 亚洲无砖砖区免费| 亚洲国产专区一区| 黄页网站在线看免费|