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

前段时间时间为你们讲解了如何使用requests库模拟登陆淘宝,而今天咱们将对该功能进行丰富。因此咱们把以前的那个版本定为1.0,而今天修改的版本定为2.0。版本的地跌意味着功能的升级,那今天的2.0版本较以前的1.0版本有哪些改进呢?咱们一块儿来看看!面试

1、1.0版本实现步骤

咱们先来回顾一下模拟登陆淘宝的步骤吧,咱们仍是先看看淘宝登陆的详细时序图:
在这里插入图片描述json

这是淘宝网登陆的一个请求流程,而咱们模拟登陆也是根据这样的一个流程。可是在代码模拟登陆的时候就不会分的这么细,咱们根据封装的思想将整个登陆流程封装在四个方法里面,能够看看下图。
在这里插入图片描述浏览器

为了便于你们理解四步登陆法,猪哥又画了一个流程图给你们看看
在这里插入图片描述cookie

结合流程图,给你们简单 的 再讲解一遍这四步具体作了啥:post

  1. 拿着用户名向淘宝(taobao.com)发起一个post的请求,判断是否出现滑块验证。
  2. 向淘宝(taobao.com)又发起一个post请求,验证用户名密码是否正确,若是正确则返回一个token。
  3. 拿着token去阿里巴巴(alibaba.com)交换st码。
  4. 获取st码以后,拿着st码获取cookies,登陆成功。

在面试的 时候也许面试官会问你是否爬取或自动登陆过淘宝,流程是怎么的?你们 就这个把这个四步登陆法讲给面试官听 ,面试官不只不会你的技术承认,也为夸张你的逻辑思惟缜密!学习

2、2.0版本新增功能

为何要作2.0版本?由于猪哥在作爬取淘宝商品的时候发现以前登陆有一个很不方便的 地方:每次程序运行完后,登陆的cookies就没了,也就是说下次又要从新登陆。测试

而浏览器却能够保存cookies信息,因此猪哥天然的想到了:将cookies序列化3d

序列化 (Serialization)是将对象的状态信息转换为能够存储或传输的形式的过程。——百度百科对象

简单说序列化就是将对象持久性保存起来,由于原来对象是在内存中,程序运行完了就要释放内存,全部的对象、变量等都会被清除,而序列化则能够把他们保存到文件。即便程序关闭了,下次启动的时候能够读取文件到内存转回对象继续使用,而这个过程叫反序列化blog

因此咱们2.0的功能就是:将登陆后的cookies保存到文件中,下次再登陆先从cookies文件读取!也就是增长了一个保存cookies 的功能,咱们再看看2.0的流程图。
在这里插入图片描述

与1.0的流程图相比,其实就多了左边的cookies文件和cookies文件的校验,这也就是咱们今天要讲的内容!

别看只是增长了一点点功能,却意义重大:由于这是一个 授人予渔的功能,你学会以后其余全部的登陆均可以作序列化保存cookies,并且还能够作cookies池!

3、2.0版本新功能实现

根据上面的流程图,咱们能够简单的分析量化一下增长的保存cookies这个共功能:

  1. 保存cookies:增长一个方法,当使用st码登陆成功后,用来将cookies对象转化为文件
  2. 读取cookies:增长一个方法,用来读取cookies文件,将它转化为cookies对象
  3. 检查cookies:增长一个方法,用来判断cookies是否失效,若是失效则删除cookies文件,若是有效则直接登陆成功!

根据以上三步,咱们就能够开始撸代码了

1.保存cookies

保存cookies其实就叫序列化,咱们先来看看代码:
在这里插入图片描述

咱们先获取cookies,而后再转为dict对象,最后将dict转化为json对象保存起来!

2.读取cookies

读取cookies就是将文件转转化为cookies对象,这一步叫反序列化,直接上代码:
在这里插入图片描述

其实反序列化就是与序列化的步骤相反,先将文件转化为dict对象,而后再转化为cookies对象,最后赋值给Session对象!

3.检查cookies

这一步咱们须要先判断cookies文件是否存在,若是存在则读取cookies,以后再访问淘宝主页看看是否能成功,若是失败则说明cookies已过时,咱们就删除cookies文件。
在这里插入图片描述

4、重构代码

功能点实现以后咱们看看怎么重构代码,根据流程图,咱们须要在方法开头增长加载cookies的功能,再最后登陆成功的时候增长保存cookies的方法,因此改动只有两处!
在这里插入图片描述

5、功能测试

在咱们实际开发工做中 ,测试是一项很是重要的步骤。通常开发都须要先自测,若是不自测就直接提测的话,测试测出bug你不只会被怼被鄙视有些公司还会影响你的kpi。

咱们来讲说序列化cookies功能自测的流程吧:

  1. 首先咱们登陆,看看登陆成功会不会将cookies保存为文件,这一步是测试序列化
  2. 而后咱们再登陆一次,根据打印信息,看看是否是直接读取cookies文件登陆的,这一步测试反序列化
  3. 最后咱们测试当cookies过时以后,会不会删除cookies文件,而后使用用户名密码登陆,最后保存新的cookies文件

1.测试正常登陆

第一次登陆是没有cookies文件的,因此正常使用用户名和密码登陆,登陆成功后保存cookies文件。
在这里插入图片描述

2.测试加载cookies登陆

再正常登陆以后,保存了cookeis文件,这里咱们要测试是否能成功加载文件中的cookies。
在这里插入图片描述

3.测试cookies过时

你们都知道cookies都会有一个过时时间,而通过猪哥测试淘宝登陆的过时时间为xx分钟!cookies过时以后咱们须要从新登陆而后从新保存cookeis文件。
在这里插入图片描述

至此全部的功能点 已经自测完毕,这时候就能够提测给测试人员,而测试人员测试经过以后,即可以上预发环境测试,预发测试经过以后才是正式环境!

如今通常的小功能都在白天发布了,而比较大的改版仍是会安排在深夜,用户少的时候!

6、总结

今天咱们学习了如何保存登陆信息,下期猪哥将会教你们如何爬取淘宝商品信息并作数据分析,仍是挺有意思的,期待吧!

看到不少同窗会在学习群里交流一些猪哥之前写的案例,感受本身作的这些教程有意义,看到你们在学习,猪哥内心超开心!

获取淘宝自动登陆源码,请关注vx公众号「裸睡的猪」回复 淘宝登陆

相关文章
相关标签/搜索