前段時(shí)間時(shí)間為大家講解了如何使用requests庫(kù)模擬登錄淘寶,而今天我們將對(duì)該功能進(jìn)行豐富。所以我們把之前的那個(gè)版本定為1.0,而今天修改的版本定為2.0。版本的迭代意味著功能的升級(jí),那今天的2.0版本較之前的1.0版本有哪些改進(jìn)呢?我們一起來看看!
1.0版本實(shí)現(xiàn)步驟
我們先來回顧一下模擬登錄淘寶的步驟吧,我們還是先看看淘寶登錄的詳細(xì)時(shí)序圖:
這是淘寶網(wǎng)登錄的一個(gè)請(qǐng)求流程,而我們模擬登錄也是根據(jù)這樣的一個(gè)流程。但是在代碼模擬登錄的時(shí)候就不會(huì)分的這么細(xì),我們根據(jù)封裝的思想將整個(gè)登錄流程封裝在四個(gè)方法里面,可以看看下圖。
為了便于大家理解四步登錄法,我又畫了一個(gè)流程圖給大家看看:
結(jié)合流程圖,給大家簡(jiǎn)單 的 再講解一遍這四步具體做了啥:
拿著用戶名向淘寶(taobao.com)發(fā)起一個(gè)post的請(qǐng)求,判斷是否出現(xiàn)滑塊驗(yàn)證。 向淘寶(taobao.com)又發(fā)起一個(gè)post請(qǐng)求,驗(yàn)證用戶名密碼是否正確,如果正確則返回一個(gè)token。 拿著token去阿里巴巴(alibaba.com)交換st碼。 獲取st碼之后,拿著st碼獲取cookies,登錄成功。在面試的時(shí)候也許面試官會(huì)問你是否爬取或自動(dòng)登錄過淘寶,流程是怎么的?大家就這個(gè)把這個(gè)四步登錄法講給面試官聽 ,面試官不僅不會(huì)你的技術(shù)認(rèn)可,也為認(rèn)可你的邏輯思維縝密!
2.0版本新增功能
為什么要做2.0版本?因?yàn)槲以谧雠廊√詫毶唐返臅r(shí)候發(fā)現(xiàn)之前登錄有一個(gè)很不方便的 地方:每次程序運(yùn)行完后,登錄的cookies就沒了,也就是說下次又要重新登錄。
而瀏覽器卻可以保存cookies信息,所以我自然地想到了:將cookies序列化。
序列化 (Serialization)是將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^程。――百度百科
簡(jiǎn)單說序列化就是將對(duì)象持久性保存起來,因?yàn)樵瓉韺?duì)象是在內(nèi)存中,程序運(yùn)行完了就要釋放內(nèi)存,所有的對(duì)象、變量等都會(huì)被清除,而序列化則可以把他們保存到文件。即使程序關(guān)閉了,下次啟動(dòng)的時(shí)候可以讀取文件到內(nèi)存轉(zhuǎn)回對(duì)象繼續(xù)使用,而這個(gè)過程叫反序列化。
所以我們2.0的功能就是:將登錄后的cookies保存到文件中,下次再登錄先從cookies文件讀取!也就是增加了一個(gè)保存cookies 的功能,我們?cè)倏纯?.0的流程圖。
與1.0的流程圖相比,其實(shí)就多了左邊的cookies文件和cookies文件的校驗(yàn),這也就是我們今天要講的內(nèi)容!
別看只是增加了一點(diǎn)點(diǎn)功能,卻意義重大:因?yàn)檫@是一個(gè) 授人予漁的功能,你學(xué)會(huì)之后其他所有的登錄都可以做序列化保存cookies,而且還可以做cookies池!
2.0版本新功能實(shí)現(xiàn)
根據(jù)上面的流程圖,我們可以簡(jiǎn)單的分析量化一下增加的保存cookies這個(gè)共功能:
保存cookies:增加一個(gè)方法,當(dāng)使用st碼登錄成功后,用來將cookies對(duì)象轉(zhuǎn)化為文件
讀取cookies:增加一個(gè)方法,用來讀取cookies文件,將它轉(zhuǎn)化為cookies對(duì)象
檢查cookies:增加一個(gè)方法,用來判斷cookies是否失效,如果失效則刪除cookies文件,如果有效則直接登錄成功!
根據(jù)以上三步,我們就可以開始擼代碼了
1.保存cookies
保存cookies其實(shí)就叫序列化,我們先來看看代碼:
新聞熱點(diǎn)
疑難解答
圖片精選