香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

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


时间:2022-04-02 10:18 作者:admin610456


如下所示:

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

以上这篇python/' target='_blank'>python 获取微信好友列表的方法(微信web)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)