Python to see if WeChat friends delete themselves

Source: Internet
Author: User

Python programming language

Python is an object-oriented, interpreted computer programming language, invented by Guido van Rossum at the end of 1989, and the first public release was released in 1991. The Python syntax is concise and clear, with a rich and powerful class library. It is often nicknamed the glue language, and it is able to easily connect various modules made in other languages, especially in C + +.


This article mainly for everyone in detail about Python to see if friends delete themselves, with a certain reference value, interested in small partners can refer to

The example of this article for everyone to share the Python friend delete the specific code for your reference, the specific content is as follows

#weixin. py#coding:utf-8#!/usr/bin/env python# coding=utf-8# This program allows you to discover the deleted friends import osimport Urllib, Urllib2import Reimport cookielibimport timeimport xml.dom.minidomimport jsonimport sysimport mathdebug = Falsemax_group_num = 35 # Number of people per group Q Rimagepath = OS.GETCWD () + '/qrcode.jpg ' tip = 0uuid = ' Base_uri = ' Redirect_uri = ' Skey = ' Wxsid = ' Wxuin = ' Pass_ti Cket = ' DeviceId = ' e000000000000000 ' baserequest = {}contactlist = []my = []def getuuid (): global uuid URL = ' https://l Ogin.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 = = ' $ ': return True return falsedef showqrimage (): Global Tip url = ' https://login.weixin.qq.com/qrcode/' + uuid params = {' t ': ' Web Wx ', ' _ ': 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 ' Please use scan QR code to log in ' 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 ': # scanned print ' Successful scan, please click on the phone to confirmTo login ' tip = 0 elif Code = = ' 200 ': # already logged in print ' is logged in ... ' 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 ': # timeout Pass # elif Code = = ' + ' or code = = ' $ ': return codedef Login (): Global Skey, Wxsi D, 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</w xsid> <wxuin>xxx</wxuin> <pass_ticket>xxx</pass_ticket> <isgrayscale>1</isgra Yscale> </error> "doc = xml.dom.minidom.parseString (data) root = doc.documentelement for node in root.ch Ildnodes: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 n Ode.nodename = = ' Pass_ticket ': pass_ticket = node.childnodes[0].data # print ' Skey:%s, Wxsid:%s, Wxuin:%s, pass_t Icket:%s '% (Skey, Wxsid, Wxuin, pass_ticket) if skey = = ' or Wxsid = = ' or Wxuin = = ' or Pass_ticket = = ': retur N False baserequest = {' Uin ': Int (Wxuin), ' Sid ': wxsid, ' Skey ': Skey, ' DeviceID ': DeviceID,} return trued EF 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 truedef webwxgetcontact (): Ur L = Base_uri + '/webwxgetcontact?pass_ticket=%s&skey=%s&r=%s '% (Pass_ticket, skey, int (Time.time ())) Request = U Rllib2. 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 (da  TA) f.close () # print Data dic = json.loads (data) memberlist = dic[' memberlist ') # reverse traverse, otherwise delete the problem. Specialusers = [' Newsapp ', ' fmessage ', ' filehelper ', ' Weibo ', ' qqmail ', ' fmessage ', ' tmessage ', ' qmessage ', ' Qqsy ' NC ', ' floatbottle ', ' Lbsapp ', ' Shakeapp ', ' medianote ', ' qqfriend ', ' Readerapp ', ' Blogapp ', ' Facebookapp ', ' Massse Ndapp ', ' Meishiapp ', ' Feedsapp ', ' VoiP ', ' blogappweixin ', ' Weixin ', ' brandsessionholder ', ' weixinreminder ', ' wxid_novlwrv3lqwv11 ', ' gh_22b87fa7cb3c ', ' Officialaccounts ', ' notification_messages ', ' wxid_novlwrv3lqwv11 ', ' gh_22b87fa7cb3c ', ' wxitil ', ' Userex Perience_alarm ', ' notification_messages '] for i in Xrange (Len (memberlist)-1,-1,-1): Member = memberlist[i] If M ember[' Verifyflag ' & 8! = 0: # Public number/service number Memberlist.remove (Member) elif member[' UserName '] in Specialusers: # Special Account Memberlist.remove (Member) elif member[' UserName '].find (' @@ ')!! =-1: # Group chat memberlist.remove (Member) Eli F member[' UserName '] = = my[' UserName ']: # own Memberlist.remove (Member) return memberlistdef createchatroom (UserNames ): Memberlist = [] for UserName in UserNames:MemberList.append ({' UserName ': UserName}) url = Base_uri + '/webwxcrea techatroom?pass_ticket=%s&r=%s '% (pass_ticket, int (Time.time ())) params = {' Baserequest ': baserequest, ' Membe Rcount ': 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[' Cha Troomname '] memberlist = dic[' memberlist '] deletedlist = [] for Member in memberlist:if member[' memberstatus '] = = 4    : # was deleted by the other deletedlist.append (member[' UserName ')) errmsg = dic[' baseresponse ' [' errmsg '] if Len (errmsg) > 0: Print ErrMsg return (Chatroomname, deletedlist) def deletemember (Chatroomname, UserNames): url = base_uri + '/webwxupdate chatroom?fun=delmember&pass_ticket=%s '% (pass_ticket) params = {' Baserequest ': baserequest, ' chatroomname ': C Hatroomname, ' 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 truedef AddMe Mber (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[' Membe RList '] deletedlist = [] for Member in memberlist:if member[' memberstatus '] = = 4: # was deleted by the other side deletedlist.append (M ember[' UserName ') errmsg = dic[' baseresponse ' [' errmsg '] if Len (errmsg) > 0:print errmsg return deletedlistdef Main (): opener = Urllib2.build_opener (URLLIB2. Httpcookieprocessor (Cookielib. Cookiejar ())) Urllib2.install_opener (opener) if getuuid () = = False:print ' Get UUID failed ' return Showqrimage () time.s Leep (1) while Waitforlogin ()! = ': Pass Os.remove (Qrimagepath) if login () = = False:print ' Login failed ' return I F webwxinit () = = False:print ' initialization failed ' return memberlist = Webwxgetcontact () MemberCount = Len (memberlist) print ' Address Book total%s friends '% MemberCount chatroomname = ' result = [] for i in xrange (0, Int (Math.ceil (membercount/float (max_group_n UM))): UserNames = [] nicknames = [] Deletedlist = ' for J in xrange (0, Max_group_num): If I * Max_grou P_num + J >= Membercount:break Member = memberlist[i * max_group_num + j] Usernames.append (member[' Us Ername ']) nicknames.append (member[' nickname '].encode (' Utf-8 ')) print '%s group ... '% (i + 1) print ', '. Join (Nickna      MES) print ' Enter ' to continue ... ' Raw_input () # New Group/Add member if Chatroomname = = ':(Chatroomname, deletedlist) = Createchatroom (UserNames) else:deletedlist = AddMember (Chatroomname, UserNames)    Deletedcount = Len (deletedlist) if Deletedcount > 0:result + deletedlist print ' Find%s deleted friends '% Deletedcount # raw_input () # Delete member Deletemember (Chatroomname, UserNames) # todo Delete group resultnames = [] for Member in Memberli St:if member[' UserName '] in result:nickname = member[' nickname '] if member[' remarkname ']! = ": Nick Name + = ' (%s) '% member[' remarkname '] resultnames.append (Nickname.encode (' Utf-8 ')) print '----------the deleted friends list------ ----' print ' \ n '. Join (resultnames) print '-----------------------------------' # Windows encoding problem fix class Unicodestreamfilter:def __init__ (self, target): Self.target = target self.encoding = ' utf-8 ' self.errors = ' rep Lace ' 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 ' The query results of this program may cause some psychological discomfort, please use carefully ... ' print ' Enter to continue ... ' raw_input () main () print ' Enter End ' Raw_input ()

The above is python to see if friends delete their content, more relevant content please follow topic.alibabacloud.com (www.php.cn)!

  • Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.