其他
Python模拟登录淘宝
将裸睡的猪设为置顶 追剧不如追爬虫
一、淘宝登录流程
淘宝ua参数:ua(User-Agent)故名用户代理,淘宝的ua参数加入了浏览器、ip、电脑、时间等信息,然后加密生成,在很多地方使用,不仅仅是登录!
输入用户名后,浏览器会向淘宝(taobao.com)发起一个post的请求,判断是否出现滑块验证! 用户输入密码后,浏览器向淘宝(taobao.com)又发起一个post请求,验证用户名密码是否正确,如果正确则返回一个token。 浏览器拿着token去阿里巴巴(alibaba.com)交换st码! 浏览器获取st码之后,拿着st码获取cookies,登录成功
二、模拟登录实现
1.判断是否需要验证码
从上图可以看出,当猪哥输入用户名后,浏览器就会发起一个post请求,来验证是否需要出现滑块验证码,如果返回true,滑块验证码则出现!否则不出现,一般是不会出现!
举个例子:某台设备可能出现登录过大量的账号,这时候淘宝就可以从ua参数中获取设备号,然后对该设备进行限制!
2.验证用户名密码
3.申请st码
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 ——百度百科
4.使用st码登录
到这里我们就已经模拟登录淘宝成功了!
5.获取淘宝昵称
三、总结
1.代码结构
这就是我们前面说过的模拟登录淘宝的四个步骤,不过这里我们是用代码实现了!
2.存在问题
首先第一个问题便是淘宝的滑块解锁,目前requests还没有很好的破解办法,后面介绍了一些爬虫框架之后我们再来破解吧! 猪哥尝试了很多次(50次以上)登录退出都没出现过滑块验证码。 网上有人使用代理ip,这里猪哥也没用,只要你不是超级超级超级频繁且大量爬取数据,一般大厂都不太会去封ip,因为有误伤率和影响用户面太广,也许一封就是整个小区。 在第二步验证用户名和密码时,上传了近30个参数,如果你把username、ua、加密密码复制进去验证还是不通过可尝试把那30个参数换成你浏览器中的! 在第三步和第四步偶尔会出现一次错误,重试一下就可以! 文章有些关于淘宝登录框架纯属猪哥猜想,如有错误还望指正!