当前位置: 首页 > 后端技术 > Python

淘宝自动登录2.0,新增Cookies序列化

时间:2023-03-26 00:53:21 Python

前段时间讲解了如何使用requests库模拟登录淘宝,今天就来丰富一下这个功能。所以我们把之前的版本定为1.0,今天修改后的版本定为2.0。版本的下降意味着功能的升级,那么今天的2.0版本相比之前的1.0版本有哪些改进呢?一起来看看吧!一、1.0版本的实现步骤先回顾一下模拟登录淘宝的步骤。我们来看一下淘宝登录的详细时序图:这是一个淘宝登录的请求流程,我们模拟的登录也是基于这样一个流程。.但是代码模拟登录的时候,就不会分这么细了。我们按照封装的思想,将整个登录过程封装在四个方法中,如下图所示。为了让大家更容易理解四步登录方法,朱哥再画一张流程图给大家看下组合流程图,简单给大家详细解释一下这四步具体是干什么的:拿用户名去淘宝(taobao.com)发起post请求,判断是否发生滑块验证。再次向淘宝(taobao.com)发起post请求,验证用户名和密码是否正确,如果正确则返回一个token。拿token去阿里巴巴(alibaba.com)兑换st码。拿到st码后,拿st码去获取cookies,登录成功。面试的时候面试官可能会问你有没有爬过或者自动登录过淘宝,流程是怎样的?简单跟面试官说说这个四步登录的方法吧。面试官不仅会认可你的技术能力,还会夸大你一丝不苟的逻辑思维!2、为什么2.0版本的新特性需要2.0版本?因为朱哥在爬淘宝商品的时候,发现之前有一个非常不方便登录的地方:每次运行完程序后,登录cookies都没有了,也就是说下次要重新登录。不过浏览器是可以保存cookie信息的,所以猪哥自然而然的想到了序列化cookie。序列化是将对象的状态信息转换成可以存储或传输的形式的过程。——百度百科简单的说序列化就是持久化保存对象,因为原来的对象在内存中,程序运行后必须释放内存,所有的对象,变量等都会清空,序列化可以保存到文件。即使程序关闭了,下次启动时,也可以将文件读取到内存中,传回对象继续使用,这个过程称为反序列化。所以我们2.0的功能是:将登录后的cookies保存到文件中,下次登录时从cookies文件中读取!也就是说,增加了保存cookies的功能。我们来看看2.0的流程图。和1.0的流程图相比,左边的cookies文件和cookies文件的验证其实多了很多,这就是我们今天要说的!虽然只是增加了一点点功能,但是意义重大:因为这是一个授人以鱼的功能,学会之后其他所有的登录都可以序列化保存cookie,也可以当做cookie使用水池!3.2.0版本新功能的实现根据上面的流程图,我们可以简单的分析和量化新增的保存cookies的常用功能:cookies文件并转化为cookies对象检查cookies:增加判断cookies是否无效的方法,无效则删除cookies文件,有效则直接登录成功!按照以上三步,我们就可以开始编码了。1.保存cookies保存cookies其实就是序列化。我们先看一下代码:我们先获取cookie,然后将其转化为dict对象,最后将dict转化为json对象保存起来!2、读取cookies读取cookies就是将文件转换成cookie对象。这一步叫做反序列化,代码直接上传:其实反序列化是序列化步骤的反面。首先将文件转换成dict对象,然后再转换成cookies对象,最后赋值给Session对象!3、在检查cookies这一步中,我们首先要判断cookies文件是否存在。如果存在,读取cookies,然后访问淘宝首页看是否成功。如果失败,说明cookies已经过期,我们删除cookies文件。4.重构代码功能点实现后,我们来看看如何重构代码。根据流程图,我们需要在方法的开头添加加载cookies的功能,最后添加登录成功时保存cookies的方法,所以只有两处改动!五、功能测试在我们实际的开发工作中,测试是非常重要的一步。一般开发需要先自测。如果不自测直接测试,测试出BUG不仅会被瞪眼被鄙视,有些公司还会影响你的kpi。下面说一下序列化cookies功能的自测过程:首先我们登录,看看登录成功后cookies是否会保存为文件。这一步是为了测试序列化,然后我们重新登录。根据打印出来的信息,看看是不是直接读取cookie文件登录,这一步测试反序列化。最后我们测试cookie过期后是否会删除cookie文件,然后用用户名和密码登录,最后保存新的cookie文件。1.先测试正常登录第一次登录没有cookie文件,所以用用户名和密码正常登录,登录成功后保存cookie文件。2、测试加载cookies正常登录后,保存cookeis文件。这里我们要测试文件中的cookies是否可以成功加载。3、测试cookies的过期时间大家都知道cookies是有过期时间的,朱哥测试过淘宝登录的过期时间是xx分钟!cookie过期后,我们需要重新登录,重新保存cookeis文件。至此,所有的功能点都已经自测完毕。这时候就可以将测试提交给测试人员了。测试人员测试通过后,就可以去进行预发布环境测试了。预发布测试通过后,正式环境可用!现在一般的小功能都是白天发布,比较大的改版还是会安排在半夜用户少的时候!6.小结今天我们学习了如何保存登录信息。下一期,朱哥会教大家如何爬取淘宝商品信息,做数据分析。挺有意思的,期待!看到很多同学会在学习群里交流一些朱哥写的案例,感觉自己做的教程很有意义。看到大家都在学习,朱哥很开心!获取淘宝自动登录源码,请关注vx公众号“裸睡猪”淘宝登录的回复