淘寶自動登陸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公衆號「裸睡的豬」回覆 淘寶登陸

相關文章
相關標籤/搜索