腾讯二维码登陆

import requestsimport refrom PIL import Imageimport urllib3from bs4 import BeautifulSoupurllib3.disable_warnings() #不看警告

‘‘‘扫描以后返回的地址https://wx2.qq.com/cgi-bin/mmwebwx-bin/[email protected]_0&uuid=gc_tSTRpaA==&lang=zh_CN&scan=1520997537https://wx2.qq.com/cgi-bin/mmwebwx-bin/[email protected]_0&uuid=gc_tSTRpaA==&lang=zh_CN&scan=1520997537‘‘‘class WxBott(object):    def __init__(self):        self.session = requests.session()  #登陆问题用session        self.session.verify = False  #统一取消验证    def get_uuid(self):        url = "https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=https%3A%2F%2Fwx.qq.com%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_CN&_=1520997435513"        #这个URL是由二维码的 headers 有一个参数不知道哪里来, 然后复制它, 在url里面找, 找到之后把有这个参数的url复制出来就是这个        result = self.session.get(url).text

#获取到以后  在进行正则匹配, 匹配其中的uuid        self.uuid = re.findall(r‘uuid = "(.*?)"‘,result)[0]

#每次出来的uuid 都是不相同的        print(self.uuid)

def get_qcode(self):        ‘‘‘        获取登陆二维码        ‘‘‘        # url = ‘https://login.weixin.qq.com/qrcode/{}‘.format(self.uuid)        # with open(‘qqqqqcode.jpg‘,‘wb‘) as f:  #        #     f.write(self.session.get(url).content)  #content的意思是二进制    循环打开二进制图片文件        # image = Image.open(‘qcode.jpg‘) #读取图片对象        # image.show()

url = ‘https://login.weixin.qq.com/qrcode/{}‘.format(self.uuid)        with open(‘qqqqqcode.jpg‘,‘wb‘) as f:            f.write(self.session.get(url).content)        image = Image.open(‘qqqqqcode.jpg‘)  #读取二进制图片        image.show()

def visit_login(self):        url = ‘https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid={}&tip=0&r=-591889347&_=1521010308313‘.format(self.uuid)   #这个网址的由来是 复制了返回正真微信url的网址        while True:            result = self.session.get(url).text            print(result)            if ‘200‘ in result:   #如果包含200就跳出                self.redirect_url = re.findall(r‘redirect_uri="(.*?)";‘,result)[0]   #这里的redirect_uri="(.*?)"; 很精髓  只是把需要的东西这样写(.*?)  别的不能动 后面加上[0]                break        print("登陆成功")   #打开跳转的网址        print(self.redirect_url)

def visit_parse(self):        result = self.session.get(self.redirect_url,allow_redirects = False).text   # allow_redirects = False   防止跳转        soup = BeautifulSoup(result,‘lxml‘)        self.skey = soup.find(‘skey‘).text        self.wxsid = soup.find(‘wxsid‘).text        self.wxuin = soup.find(‘wxuin‘).text        self.pass_ticket = soup.find(‘pass_ticket‘).text        self.isgrayscale = soup.find(‘isgrayscale‘).text

def visit_init(self):        url = ‘https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxinit?r=-1033474349‘        data = {"BaseRequest":{"Uin":self.wxuin,"Sid":self.wxsid,"Skey":self.skey,"DeviceID":"e041800958560706"}}        result = self.session.post(url,data)if __name__ == ‘__main__‘:    wx = WxBott()    wx.get_uuid()    wx.get_qcode()    wx.visit_login()    wx.visit_parse()    wx.visit_init()    print(wx.skey)    #print(wx.redirect_url)

原文地址:https://www.cnblogs.com/yuanjia8888/p/10124720.html

时间: 2024-10-10 05:47:13

腾讯二维码登陆的相关文章

注册绑定页面及微信二维码登陆页面开发项目总结

乐帝来到新的实习单位,也许是之前面试或者在爱奇艺实习的履历,很快被项目组"委以重任".而不是老套路刚入职,先在架构师那培训两周,专心钻研框架,不问具体业务.乐帝只有几天看框架的时间,当被分配给框架页面时,还是不能得心应手,正如同事所说,学习还得按部就班,写写例子,看代码是不行的.    目前这家公司类似<走出软件作坊>作者阿朱所在行业,是面向中大型企业,提供人才管理解决方案的软件公司,时髦的词叫SAAS.这类公司层次要比外包公司高,却还有很多外包公司的特点,不像互联网公司有

二维码登陆

上一段时间研究微信公共账号,发现微信提供了一个扫码登陆验证的功能.近期头痛于经常忘记用户名密码,因此考虑是否可以结合这个功能,完成免密码登陆.百度后发现,有很多仁兄已经做过类似的功能了. 如这篇文章: 实现网站二维码扫描登录 仔细研究后,发现很多平台都提供了类似的功能,如百度.微博.OSChina等.因此考虑设计一款软件,将此项功能推广到其他平台和应用场景.毕竟可以方便像我这样的懒人.经过一番捣鼓后,初步版本已经基本完成了, 网站地址:http://it.maerdym.cn/mm_mishu/

Android二维码扫描登陆网页

1        二维码扫描登陆 1,web端生成二维码,传递uuid,并存入数据库 2,web端轮训查询信息,是否有数据库扫描二维码信息 3,手机端扫描二维码,获取UUID,传递用户名.密码web端 4,web查询数据库中用户信息(UserLogin),将登陆信息(用户名,密码)存入数据库. 5,web轮训查到用户登陆信息,信息完整,则登陆成功. 1.1    web端 1.1.1  导入依赖包(二维码生成QRCode.jar) jar包下载:QRCode.jar 1.1.2  用户登陆信息实

PHP微信扫描二维码登录网站代码示例

扫描二维码登录对于现在的web应用来说,确实是个很炫酷的功能,安全性也可以保障,不少朋友可能觉得这是个很复杂的工作,其实不然,真正说来只有几个步骤而已. 原理 PC浏览器展示一张二维码图片,该图片二维码值为一段绝对地址的url,大致如下:http://www.example.com/oauth/qrcode?key=key PC浏览器定期轮询 http://www.example.com/oauth/query,可能有的同学会问,怎么不用带上key?这里我们用session来保存key,所以链接

微信电脑网页二维码扫描登陆简单实现

看那个微信电脑端的扫描登录看起来叼叼哒,找了一篇文章了解一下具体的实现思路和过程,看了牛人的分析后,发现实现起来也不是很难,这里我就简单的实现了一下.可能功能和流畅度没有微信做的好,具体是我对前端不是很了解. 好了,不多说,首先要有一个二维码的生成软件才行,这里找了一个叫QrenCode的软件,好处是可以在命令行中进行生成.(下载地址: http://pkgs.org/download/qrencode 找自己合适的下载 应该还要一个依赖库libqrencode) 1 #QrenCode 下面是

方案优化:网站实现扫描二维码关注微信公众号,自动登陆网站并获取其信息

上一篇  <网站实现扫描二维码关注微信公众号,自动登陆网站并获取其信息> 中已经实现用户扫码登陆网站并获取其信息 但是上一篇方案中存在一个问题,也就是文章末尾指出的可以优化的地方(可以点击这个链接去看一下上篇文章) 首先回顾一下上一篇的思路: 1,微信的系统,提供生成带参数的二维码的接口,这个参数就是唯一值(场景值)  2,网站调用微信系统,获取生成的二维码图片  3,用户扫码会直接调用微信服务器,将用户访问微信服务器的信息记录到redis,key就是唯一值(场景值)  4,网站端做轮训去查询

iOS开发-二维码扫描和应用跳转

iOS开发-二维码扫描和应用跳转 序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦,出错也不方便调试.在iOS7之后,苹果自身提供了二维码的扫描功能,从效率上来说,原生的二维码远高于这些第三方框架.本文讲解如何使用原生框架实现二维码扫描功能,并且进行扫描后的项目跳转.ps:本期的源代码会在文章结尾给出链接 扫描相关类 二维码扫描需要获取摄像头并读取

IOS二维码扫描IOS7系统实现

扫描相关类 二维码扫描需要获取摄像头并读取照片信息,因此我们需要导入系统的AVFoundation框架,创建视频会话.我们需要用到一下几个类: AVCaptureSession 会话对象.此类作为硬件设备输入输出信息的桥梁,承担实时获取设备数据的责任 AVCaptureDeviceInput 设备输入类.这个类用来表示输入数据的硬件设备,配置抽象设备的port AVCaptureMetadataOutput 输出类.这个支持二维码.条形码等图像数据的识别 AVCaptureVideoPrevie

【转】微信扫描二维码登录网页是什么原理?

我个人开发过程一般是和产品说,『你们提业务要求.交互方式.性能要求等就好,技术方案我们会综合开发时间.系统架构等因素考虑』. 恰好我之前也花过几个小时做过类似的验证登录过程,这里作为探讨,把产品同学的回答做个引用,解释一下其中『不技术』的地方. 1. 每打开一次微信网页版页面的时候会随机生成一个含有唯一 uid 的二维码,每次刷新页面都会不一样(这个可以保证一个 uid 只可以绑定一个账号和密码,如果一个 uid 可以绑定多个账号和密码,那么很可能你的电脑会登陆别人的微信哦): 确实返回了唯一