python 获取微信好友列表的方法(微信web)
如下所示:
importurllib importurllib2 importos importtime importre importcookielib importxml.dom.minidom importjson tip=0 uuid='' successUrl='' skey='' wxsid='' wxuin='' pass_ticket='' deviceId='e000000000000000' imagesPath=os.getcwd()+'/weixin.jpg' BaseRequest={} base_uri='' push_uri='' defgetUUID(): globaluuid url='https://login.weixin.qq.com/jslogin' values={ 'appid':'wx782c26e4c19acffb', 'redirect_uri':'https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage', 'fun':'new', 'lang':'zh_CN', '_':int(time.time()) } request=urllib2.Request(url=url,data=urllib.urlencode(values)) response=urllib2.urlopen(request) data=response.read() printdata regx=r'window.QRLogin.code=(\d+);window.QRLogin.uuid="(\S+?)"' pm=re.search(regx,data) code=pm.group(1) uuid=pm.group(2) printcode,uuid ifcode=='200': returnTrue returnFalse defshow2DimensionCode(): globaltip url='https://login.weixin.qq.com/qrcode/'+uuid values={ 't':'webwx', '_':int(time.time()) } request=urllib2.Request(url=url,data=urllib.urlencode(values)) response=urllib2.urlopen(request) tip=1 f=open(imagesPath,'wb') f.write(response.read()) f.close() time.sleep(1) os.system('call%s'%imagesPath) printu'pleasesacnqcodebyyourphone'.encode('GBK') defisLoginSucess(): globalsuccessUrl,base_uri,push_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() printdata regx=r'window.code=(\d+)' regxLogin=r'window.redirect_uri="(\S+?)"' pm=re.search(regx,data) pmLogin=re.search(regxLogin,data) code=pm.group(1) ifpmLogin!=None: successUrl=pmLogin.group(1)+'&fun=new&version=v2' ifcode=='201': print'ScanQRcodesuccessfully!' elifcode=='200': print'Logining...' services=[ ('wx2.qq.com','webpush2.weixin.qq.com'), ('qq.com','webpush.weixin.qq.com'), ('web1.wechat.com','webpush1.wechat.com'), ('web2.wechat.com','webpush2.wechat.com'), ('wechat.com','webpush.wechat.com'), ('web1.wechatapp.com','webpush1.wechatapp.com'), ] base_uri=successUrl[:successUrl.rfind('/')] push_uri=base_uri for(searchUrl,pushUrl)inservices: ifbase_uri.find(searchUrl)>=0: push_uri='https://%s/cgi-bin/mmwebwx-bin'%pushUrl break elifcode=='408': print'LoginTimeout!' returncode defwebwxnewloginpage(): globalsuccessUrl,skey,wxsid,wxuin,pass_ticket,BaseRequest request=urllib2.Request(url=successUrl) response=urllib2.urlopen(request) data=response.read() doc=xml.dom.minidom.parseString(data) root=doc.documentElement fornodeinroot.childNodes: ifnode.nodeName=='skey': skey=node.childNodes[0].data elifnode.nodeName=='wxsid': wxsid=node.childNodes[0].data elifnode.nodeName=='wxuin': wxuin=node.childNodes[0].data elifnode.nodeName=='pass_ticket': pass_ticket=node.childNodes[0].data BaseRequest={ 'Uin':wxuin, 'Sid':wxsid, 'Skey':skey, 'DeviceID':deviceId, } defwebwxinit(): globalskey,pass_ticket,BaseRequest,base_uri url=(base_uri+'/webwxinit?pass_ticket=%s&skey=%s&r=%s'%(pass_ticket,skey,int(time.time()))) params={'BaseRequest':BaseRequest} headers={'content-type':'application/json;charset=UTF-8'} request=urllib2.Request(url=url,data=json.dumps(params),headers=headers) response=urllib2.urlopen(request) data=response.read() printdata defwebwxgetcontact(): globalskey,pass_ticket,base_uri url=(base_uri+'/webwxgetcontact?pass_ticket=%s&skey=%s&r=%s'%(pass_ticket,skey,int(time.time()))) headers={'content-type':'application/json;charset=UTF-8'} request=urllib2.Request(url=url,headers=headers) response=urllib2.urlopen(request) data=response.read() printdata defmain(): cookie=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar())) urllib2.install_opener(cookie) ifgetUUID()==False: print'Getuuidunsuccessfully!' returnNone show2DimensionCode() time.sleep(1) whileisLoginSucess()!='200': pass webwxnewloginpage() #time.sleep(1) #webwxinit() time.sleep(1) webwxgetcontact() os.remove(imagesPath) print'Loginsuccessfully!' if__name__=='__main__': print'Welcometouseweixinpersonnalversion' print'PleaseclickEnterkeytocontinue......' main()
以上这篇python获取微信好友列表的方法(微信web)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。