作者:Zarten 知乎专栏:Python爬虫深入详解 知乎ID: Zarten 简介: 互联网一线工作者,尊重原创并欢迎评论留言指出不足之处,也希望多些关注和点赞是给作者最好的鼓励 !
当我们打开淘宝网时,可以选择扫描二维码登录,然后拿出手机扫描二维码后即可登录成功。那二维码登录过程究竟是怎样的呢?废话不多说,直接上干货。
解析登录过程
1.首先打开淘宝网登录页面: 淘宝网 - 淘!我喜欢
2.刷新一下,打开浏览器调试工具,可以找到一段JS代码,如下
这里主要关心这2个字段: getQRCodeURL 和 checkQRCodeURL
3.getQRCodeURL
当我们访问淘宝网登录页面时,浏览器会首先访问这个字段的链接,淘宝服务器会返回一些信息,我们关心的是 返回的 url 和 lgToken 字段
url:就是二维码的链接地址,浏览器会访问这个链接然后显示在我们所看到的网页上。我们可以用浏览器单独访问这个地址看看
如果在一段时间内没有用手机扫描这个二维码,这个二维码就过期了,需要刷新一下网页
lgToken :为此次登录的唯一标识身份识别,这个字段等会在后面会使用
4.checkQRCodeURL
浏览器会每个一定的时间(目前1s左右)通过JS请求来检测是否登录以及登录状态
检测url链接为: checkQRCodeURL的值 + 上面获取到的 lgToken
例如:
https://qrlogin.taobao.com/qrcodelogin/qrcodeLoginCheck.do?lgToken=9e4a8aeef39779dd3dd6b5905600de5d
注:上述链接具体参数以读者当时的数据为准,因为会过期
请求上述链接后,淘宝会返回登录状态的信息,如下图:
会有一个状态码code返回,经测试后具体含义如下:
10000 : 等待扫码
10001 : 扫码成功,但没在手机端确认登录
10004 : 二维码过期
10006 : 登录成功,会返回登录成功后的登录链接
扫码登录成功后,返回信息如下:
5.访问淘宝登录授权url
如上图所示:返回信息中,有一个url字段,这个就是登录成功后的链接,现在我们可以直接访问这个链接进入登录成功后的页面,淘宝会自动跳转到首页,如下所示:
从上图的红色方框标注地方可以看到已经是登录状态了,但为了个人隐私问题,上面我将会员名称打马赛克
注:如在电脑上首次登录会触发淘宝的安全机制,只需再在手机上确认一下就可以了