战与和,相依为命电视剧,鸿运鹰
如下所示:
import urllib import urllib2 import os import time import re import cookielib import xml.dom.minidom import json tip = 0 uuid = '' successurl = '' skey = '' wxsid = '' wxuin = '' pass_ticket = '' deviceid = 'e000000000000000' imagespath = os.getcwd() + '/weixin.jpg' baserequest = {} base_uri = '' push_uri = '' def getuuid(): global uuid 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() print data regx = r'window.qrlogin.code = (\d+); window.qrlogin.uuid = "(\s+?)"' pm = re.search(regx, data) code = pm.group(1) uuid = pm.group(2) print code, uuid if code == '200': return true return false def show2dimensioncode(): global tip 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) print u'please sacn qcode by your phone'.encode('gbk') def isloginsucess(): global successurl, 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() print data 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) if pmlogin != none: successurl = pmlogin.group(1) + '&fun=new&version=v2' if code == '201': print'scan qr code successfully!' elif code == '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) in services: if base_uri.find(searchurl) >= 0: push_uri = 'https://%s/cgi-bin/mmwebwx-bin' % pushurl break elif code == '408': print'login timeout!' return code def webwxnewloginpage(): global successurl, 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 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 baserequest = { 'uin': wxuin, 'sid': wxsid, 'skey': skey, 'deviceid': deviceid, } def webwxinit(): global skey, 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() print data def webwxgetcontact(): global skey, 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() print data def main(): cookie = urllib2.build_opener(urllib2.httpcookieprocessor(cookielib.cookiejar())) urllib2.install_opener(cookie) if getuuid() == false: print'get uuid unsuccessfully!' return none show2dimensioncode() time.sleep(1) while isloginsucess() != '200': pass webwxnewloginpage() # time.sleep(1) # webwxinit() time.sleep(1) webwxgetcontact() os.remove(imagespath) print'login successfully!' if __name__ == '__main__': print'welcome to use weixin personnal version' print'please click enter key to continue......' main()
以上这篇python 获取微信好友列表的方法(微信web)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
新手学习Python2和Python3中print不同的用法
Python基于os.environ从windows获取环境变量
网友评论