关于实现某宝python+requesrts扫码登录分享

最近在做一个某宝二维码扫码的项目,一般第一个会想到的就是用selenium模拟人操作,实现扫码登录,但是因为selenium运行起来太慢,我就暂时放弃了用selenium模拟登录,宁辟蹊径,我想用requests来实现模拟扫码登陆,

说一下思路:
第一: 打开某宝登录页首先看到是二维码登录页面,我用的是谷歌浏览器,是首先我们要找到需要 用来扫描的二维码图片地址,分析发现二维码图片连接就是这个样子 https://img.alicdn.com/tfscom/TB1JgJyweOSBuNjy0Fdwu2DnVXa.png,
其中:TB1JgJyweOSBuNjy0Fdwu2DnVXa.png,这一部分是一直变化的,每一张图片这个部分都不一样,要想模拟登录,这部分要先获取,(哈哈哈,先定一个小目标),找寻了一会发现在登录首页里面发现了一些希望,

#定义一个类 
class T(object):
    def __init__(self):
        self.s = requests.Session()

    def status_code(self):
        url = 'https://login.taobao.com/member/login.jhtml?redirectURL=https%3A%2F%2Fwww.taobao.com%2F'
        headers_ = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.19 Safari/537.36'
        }
        res = self.s.get(url, headers=headers_).text
        u = re.findall(r'getQRCodeURL: "(.*?)"', res, re.S)[0]
        return u

调用这个会响应会返回一个json数据,里面就有上文提到的,TB1JgJyweOSBuNjy0Fdwu2DnVXa.png,还有一个lgtoken字段这个下面会用到。到这里恭喜你二维码图片链接找到了,那么我们就来模拟请求这个链接然后快乐的保存二维码吧(二维码保存下来后,方便用手机扫码)下面接着写上我的代码

#这个是用来保存二维码的
    def rq_login(self):
        us = self.status_code()
        url = '{}'.format(us)
        headers = {
            'referer': 'https://login.taobao.com/member/login.jhtml?redirectURL=https%3A%2F%2Fwww.taobao.com%2F',
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.19 Safari/537.36'
        }
        res = self.s.get(url, headers=headers).json()
        print(res)
        rq_img = 'http:' + res.get('url')
        lgToken = res.get('lgToken')
        img_res = self.s.get(rq_img, headers=headers).content
        with open('img.png', 'wb')as f:
            f.write(img_res)

到这里我们第一个小目标实现了,二维码保存本地成功,今天先写到这,未完待续

你可能感兴趣的:(关于实现某宝python+requesrts扫码登录分享)