淘宝网登陆(淘宝网首页电脑版)

前段时间讲解了如何使用requests库模拟登录淘宝,但今天我们将丰富这个功能。所以我们把之前的版本设为1.0,今天的修订版设为2.0。版本的下降意味着功能的升

淘宝网登陆(淘宝网首页电脑版)插图

前段时间讲解了如何使用requests库模拟登录淘宝,但今天我们将丰富这个功能。所以我们把之前的版本设为1.0,今天的修订版设为2.0。版本的下降意味着功能的升级,那么今天的2.0版本相比之前的1.0版本有哪些改进?让我们来看看!

一、1.0版本的实施步骤

我们先来回顾一下模拟淘宝登录的步骤。我们先来看看淘宝登录的详细时序图:

淘宝网登陆(淘宝网首页电脑版)插图(1)

这是淘宝登录的一个请求过程,我们模拟登录也是基于这样一个过程。但是代码模拟登录的时候就不会这么详细了。根据封装的思想,我们用四种方法封装了整个登录过程。可以看到下图。

淘宝网登陆(淘宝网首页电脑版)插图(2)

为了让大家容易理解四步登录法,猪哥画了一个流程图给大家看。

淘宝网登陆(淘宝网首页电脑版)插图(3)

结合流程图,我们简单说明一下这四个步骤都做了什么:

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

面试的时候,可能面试官会问你有没有自动抓取或者登录过淘宝。流程是怎样的?告诉面试官这个四步登录法。面试官不仅不会认可你的技术,还会仔细思考夸大你的逻辑!

二。2.0版中的新功能

为什么要做2.0版本?因为猪哥在抓取淘宝商品之前发现登录不方便:每次程序运行,登录的cookies都没有了,意味着下次要重新登录。

不过浏览器可以保存cookies,所以猪哥自然想到了连载cookies。

序列化是将对象的状态信息转换为可以存储或传输的形式的过程。-百度百科

简单的序列化就是保持对象的持久性,因为原来的对象在内存中,当程序结束时,内存会被释放,所有的对象、变量等。将被清除,而序列化可以将它们保存到文件中。即使程序关闭了,下次启动时,文件还可以读入内存,对象还可以继续使用,这个过程叫做反序列化。

所以我们2.0的功能就是把登录的cookie保存到一个文件中,下次登录的时候再从cookie文件中读取!也就是增加了一个保存cookies的功能。再来看2.0的流程图。

淘宝网登陆(淘宝网首页电脑版)插图(4)

相对于1.0的流程图,左边其实有更多的cookies以及cookies的验证,这也是我们今天要讲的内容!

虽然只是增加了一点功能,但是意义重大:因为是授人以鱼的功能,所以你学会之后,其他所有登录都可以序列化保存cookie,也可以作为cookie池使用!

三。2.0版中新功能的实现

根据上面的流程图,我们可以简单的分析和量化一下新增的保存cookies的功能:

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

按照以上三个步骤,我们就可以开始编码了。

1.保存cookies

保存cookies其实叫序列化。让我们先来看看代码:

淘宝网登陆(淘宝网首页电脑版)插图(5)

先获取cookies,再转换成dict对象,最后将dict转换成json对象保存!

2.阅读cookies

读取cookie就是把文件转换成cookie。这一步称为反序列化,代码直接加载:

淘宝网登陆(淘宝网首页电脑版)插图(6)

实际上,反序列化是序列化的反义词。先把文件转换成dict对象,再转换成cookies对象,最后赋给Session对象!

检查饼干

这一步我们需要判断cookie文件是否存在,如果存在就读取cookie文件,然后访问淘宝首页,看是否能成功。如果失败,说明cookie文件已经过期,我们会删除cookie文件。

淘宝网登陆(淘宝网首页电脑版)插图(7)

第四,重构代码

功能实现后,我们来看看如何重构代码。根据流程图,我们需要在方法的开头添加加载cookie的功能,然后在登录成功时添加保存cookie的方法,所以只有两处改动!

淘宝网登陆(淘宝网首页电脑版)插图(8)

动词 (verb的缩写)功能测试

在我们实际的开发工作中,测试是非常重要的一步。一般来说,开发需要自测。如果不自测就直接测试bug,不仅会被测试鄙视,有些公司还会影响你的kpi。

先说一下序列化cookies自检的过程:

首先我们登录,看看登录成功会不会将cookies保存为文件,这一步是测试序列化然后我们再登录一次,根据打印信息,看看是不是直接读取cookies文件登录的,这一步测试反序列化最后我们测试当cookies过期之后,会不会删除cookies文件,然后使用用户名密码登录,最后保存新的cookies文件

1.测试正常登录。

首次登录时没有cookie文件,使用用户名和密码正常登录,成功登录后保存cookie文件。

淘宝网登陆(淘宝网首页电脑版)插图(9)

2.测试并加载cookies登录

正常登录后,cookeis文件被保存。这里,我们将测试文件中的cookies是否可以成功加载。

淘宝网登陆(淘宝网首页电脑版)插图(10)

3.测试cookies是否过期

大家都知道cookies会有过期时间,但是经过猪哥的测试,淘宝登录的过期时间是xx分钟!cookies过期后,我们需要再次登录并再次保存cookies文件。

淘宝网登陆(淘宝网首页电脑版)插图(11)

至此,所有的功能点都已经自检完毕,接下来就可以对测试人员进行测试了。测试人员通过测试后,就可以去进行预发布环境测试了。上线前测试通过后,就是正式环境了!

现在一般的小功能都是白天发布,而较大的改版还是会安排在晚上用户少的时候!

不及物动词摘要

今天,我们学习了如何保存登录信息。下次猪哥教你如何抓取淘宝商品信息,做数据分析。还是挺有意思的。期待!

看到很多同学会在学习群里交流一些猪哥写的案例,觉得自己做的这些教程很有意义。看到大家都在学习,猪哥超级开心!

淘宝自动登录源地址:https://github.com/pig6/login_taobao

淘宝网登陆(淘宝网首页电脑版)插图(12)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/107835.html

发表回复

登录后才能评论