python代码添加微信号(python 获取微信好友列表的方法微信web)
类别:脚本大全 浏览量:1663
时间:2022-01-25 00:37:24 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)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/Dopamy_BusyMonkey/article/details/74568558
您可能感兴趣
- python使用门算法加密文件(python实现可逆简单的加密算法)
- python创建hbase命名空间(python使用phoenixdb操作hbase的方法示例)
- python class转json(Python对象转换为json的方法步骤)
- python加密和解密(python实现对输入的密文加密)
- python定时任务详解(使用Python做定时任务及时了解互联网动态)
- python语句for循环(Python基础之循环语句用法示例for、while循环)
- pythonpandas使用攻略(详解Python中pandas的安装操作说明傻瓜版)
- 用python制作一个简单的小程序(一个可以套路别人的python小程序实例代码)
- python完整异常机制(深入理解Python异常处理的哲学)
- python3编程过程(Python3模拟登录操作实例分析)
- python爬取豆瓣评分排行榜(Python爬虫——爬取豆瓣电影Top250代码实例)
- python的条件判断和循环(对Python中的条件判断、循环以及循环的终止方法详解)
- python语言提供的3种基本数据类型(详解Python3 基本数据类型)
- python字符串的拼接与分割(Python字符串通过'+'和join函数拼接新字符串的性能测试比较)
- pythonopencv自定义阈值算法(理想高通滤波实现Python opencv示例)
- python画佩奇(啥是佩奇?使用Python自动绘画小猪佩奇的代码实例)
- 潘长江小品《照亮全家福》台词剧本完整版(潘长江小品照亮全家福台词剧本完整版)
- 一窗通办政务服务小品剧本(一窗通办政务服务小品剧本)
- 刘韬涛丁子贺小品《根治低头族》台词剧本(刘韬涛丁子贺小品根治低头族台词剧本)
- 看完《夺冠》,黄渤的演技我实在夸不起来,彭昱畅反令人惊喜(黄渤的演技我实在夸不起来)
- 黄渤泪目 我的痴呆父亲,我内心永远的痛(黄渤泪目我的痴呆父亲)
- 蒜苔和鱿鱼尾巴一起炒,味道特别棒,又脆又嫩,有滋又有味(蒜苔和鱿鱼尾巴一起炒)
热门推荐
- vue2.0自定义指令(vue2实现provide inject传递响应式)
- mysql如何删除整个表及数据(Mysql删除数据以及数据表的方法实例)
- css中的background:transparent的作用
- 云服务器的优点(云服务器都有哪些特点和优势)
- html5实时通讯(使用Html5 Stream开发实时监控系统)
- mysql索引原理及调优(MySQL索引机制程序员必知)
- servu权限设置(Serv-U防溢出提权攻击解决设置方法)
- sqlserver表分区缺点(SQL Server 公用表表达式CTE实现递归的方法)
- Request获取URL的各种信息
- python字符串找一个最大字符(Python查找最长不包含重复字符的子字符串算法示例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9