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

如下所示: 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)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值