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)!