国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python 獲取微信好友列表的方法(微信web)

2020-02-16 01:16:39
字體:
來源:轉載
供稿:網友

如下所示:

 import urllibimport urllib2 import osimport timeimport 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()              
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 林周县| 洪湖市| 聂荣县| 临洮县| 固安县| 神池县| 元朗区| 翁牛特旗| 东至县| 图木舒克市| 上思县| 二手房| 卓资县| 永泰县| 嘉峪关市| 定襄县| 屏东县| 张家界市| 蓬莱市| 仁寿县| 福贡县| 黎城县| 平舆县| 临沧市| 双鸭山市| 芦山县| 治多县| 会宁县| 大石桥市| 东城区| 烟台市| 阳原县| 西青区| 察雅县| 开远市| 金坛市| 黔西| 阿荣旗| 稷山县| 苏尼特右旗| 民权县|