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)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。