亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

如何用 Python 自動(dòng)登錄淘寶并保存登錄信息?

系統(tǒng) 1670 0

640?wx_fmt=gif

640?wx_fmt=jpeg

作者 |?豬哥

責(zé)編?| 伍杏玲

前段時(shí)間時(shí)間為大家講解了如何使用requests庫(kù)模擬登錄淘寶,而今天我們將對(duì)該功能進(jìn)行豐富。所以我們把之前的那個(gè)版本定為1.0,而今天修改的版本定為2.0。版本的迭代意味著功能的升級(jí),那今天的2.0版本較之前的1.0版本有哪些改進(jìn)呢?我們一起來(lái)看看!

?

?

640?wx_fmt=png

1.0版本實(shí)現(xiàn)步驟

?

我們先來(lái)回顧一下模擬登錄淘寶的步驟吧,我們還是先看看淘寶登錄的詳細(xì)時(shí)序圖:

640?wx_fmt=png

這是淘寶網(wǎng)登錄的一個(gè)請(qǐng)求流程,而我們模擬登錄也是根據(jù)這樣的一個(gè)流程。但是在代碼模擬登錄的時(shí)候就不會(huì)分的這么細(xì),我們根據(jù)封裝的思想將整個(gè)登錄流程封裝在四個(gè)方法里面,可以看看下圖。

640?wx_fmt=png

為了便于大家理解四步登錄法,我又畫(huà)了一個(gè)流程圖給大家看看:

640?wx_fmt=png

結(jié)合流程圖,給大家簡(jiǎn)單 的 再講解一遍這四步具體做了啥:

  1. 拿著用戶名向淘寶(taobao.com)發(fā)起一個(gè)post的請(qǐng)求,判斷是否出現(xiàn)滑塊驗(yàn)證。

  2. 向淘寶(taobao.com)又發(fā)起一個(gè)post請(qǐng)求,驗(yàn)證用戶名密碼是否正確,如果正確則返回一個(gè)token。

  3. 拿著token去阿里巴巴(alibaba.com)交換st碼。

  4. 獲取st碼之后,拿著st碼獲取cookies,登錄成功。

在面試的時(shí)候也許面試官會(huì)問(wèn)你是否爬取或自動(dòng)登錄過(guò)淘寶,流程是怎么的?大家就這個(gè)把這個(gè)四步登錄法講給面試官聽(tīng) ,面試官不僅不會(huì)你的技術(shù)認(rèn)可,也為認(rèn)可你的邏輯思維縝密!

?

?

640?wx_fmt=png

2.0版本新增功能

?

為什么要做2.0版本?因?yàn)槲以谧雠廊√詫毶唐返臅r(shí)候發(fā)現(xiàn)之前登錄有一個(gè)很不方便的 地方:每次程序運(yùn)行完后,登錄的cookies就沒(méi)了,也就是說(shuō)下次又要重新登錄。

而瀏覽器卻可以保存cookies信息,所以我自然地想到了:將cookies序列化。

序列化 (Serialization)是將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^(guò)程。——百度百科

簡(jiǎn)單說(shuō)序列化就是將對(duì)象持久性保存起來(lái),因?yàn)樵瓉?lái)對(duì)象是在內(nèi)存中,程序運(yùn)行完了就要釋放內(nèi)存,所有的對(duì)象、變量等都會(huì)被清除,而序列化則可以把他們保存到文件。即使程序關(guān)閉了,下次啟動(dòng)的時(shí)候可以讀取文件到內(nèi)存轉(zhuǎn)回對(duì)象繼續(xù)使用,而這個(gè)過(guò)程叫反序列化。

所以我們2.0的功能就是:將登錄后的cookies保存到文件中,下次再登錄先從cookies文件讀取!也就是增加了一個(gè)保存cookies 的功能,我們?cè)倏纯?.0的流程圖。

640?wx_fmt=png

與1.0的流程圖相比,其實(shí)就多了左邊的cookies文件和cookies文件的校驗(yàn),這也就是我們今天要講的內(nèi)容!

別看只是增加了一點(diǎn)點(diǎn)功能,卻意義重大:因?yàn)檫@是一個(gè) 授人予漁的功能,你學(xué)會(huì)之后其他所有的登錄都可以做序列化保存cookies,而且還可以做cookies池!

?

?

640?wx_fmt=png

2.0版本新功能實(shí)現(xiàn)

?

根據(jù)上面的流程圖,我們可以簡(jiǎn)單的分析量化一下增加的保存cookies這個(gè)共功能:

  1. 保存cookies:增加一個(gè)方法,當(dāng)使用st碼登錄成功后,用來(lái)將cookies對(duì)象轉(zhuǎn)化為文件

  2. 讀取cookies:增加一個(gè)方法,用來(lái)讀取cookies文件,將它轉(zhuǎn)化為cookies對(duì)象

  3. 檢查cookies:增加一個(gè)方法,用來(lái)判斷cookies是否失效,如果失效則刪除cookies文件,如果有效則直接登錄成功!

根據(jù)以上三步,我們就可以開(kāi)始擼代碼了

1.保存cookies

保存cookies其實(shí)就叫序列化,我們先來(lái)看看代碼:
640?wx_fmt=png

我們先獲取cookies,然后再轉(zhuǎn)為dict對(duì)象,最后將dict轉(zhuǎn)化為JSON對(duì)象保存起來(lái)!

2.讀取cookies

讀取cookies就是將文件轉(zhuǎn)轉(zhuǎn)化為cookies對(duì)象,這一步叫反序列化,直接上代碼:

640?wx_fmt=jpeg

其實(shí)反序列化就是與序列化的步驟相反,先將文件轉(zhuǎn)化為dict對(duì)象,然后再轉(zhuǎn)化為cookies對(duì)象,最后賦值給Session對(duì)象!

3.檢查cookies

這一步我們需要先判斷cookies文件是否存在,如果存在則讀取cookies,之后再訪問(wèn)淘寶主頁(yè)看看是否能成功,如果失敗則說(shuō)明cookies已過(guò)期,我們就刪除cookies文件。

640?wx_fmt=jpeg

?

?

640?wx_fmt=png

重構(gòu)代碼

?

功能點(diǎn)實(shí)現(xiàn)之后我們看看怎么重構(gòu)代碼,根據(jù)流程圖,我們需要在方法開(kāi)頭增加加載cookies的功能,再最后登錄成功的時(shí)候增加保存cookies的方法,所以改動(dòng)只有兩處!

640?wx_fmt=jpeg

?

?

640?wx_fmt=png

功能測(cè)試

?

在我們實(shí)際開(kāi)發(fā)工作中 ,測(cè)試是一項(xiàng)非常重要的步驟。一般開(kāi)發(fā)都需要先自測(cè),如果不自測(cè)就直接提測(cè)的話,測(cè)試測(cè)出Bug你不僅會(huì)被懟被鄙視有些公司還會(huì)影響你的KPI。

我們來(lái)說(shuō)說(shuō)序列化cookies功能自測(cè)的流程吧:

  1. 首先我們登錄,看看登錄成功會(huì)不會(huì)將cookies保存為文件,這一步是測(cè)試序列化;

  2. 然后我們?cè)俚卿浺淮危鶕?jù)打印信息,看看是不是直接讀取cookies文件登錄的,這一步測(cè)試反序列化;

  3. 最后我們測(cè)試當(dāng)cookies過(guò)期之后,會(huì)不會(huì)刪除cookies文件,然后使用用戶名密碼登錄,最后保存新的cookies文件。

1.測(cè)試正常登錄

第一次登錄是沒(méi)有cookies文件的,所以正常使用用戶名和密碼登錄,登錄成功后保存cookies文件。

640?wx_fmt=png

2.測(cè)試加載cookies登錄

在正常登錄之后,保存了cookeis文件,這里我們要測(cè)試是否能成功加載文件中的cookies:

640?wx_fmt=jpeg

3.測(cè)試cookies過(guò)期

大家都知道cookies都會(huì)有一個(gè)過(guò)期時(shí)間,而經(jīng)過(guò)測(cè)試淘寶登錄的過(guò)期時(shí)間大概為60分鐘!cookies過(guò)期之后我們需要重新登錄然后重新保存cookeis文件。

640?wx_fmt=jpeg

至此所有的功能點(diǎn) 已經(jīng)自測(cè)完畢,這時(shí)候就可以提測(cè)給測(cè)試人員,而測(cè)試人員測(cè)試通過(guò)之后,便可以上預(yù)發(fā)環(huán)境測(cè)試,預(yù)發(fā)測(cè)試通過(guò)之后才是正式環(huán)境!

現(xiàn)在很多公司發(fā)布策略都是:小功能都在白天發(fā)布了,而比較大的改版還是會(huì)安排在深夜,用戶少的時(shí)候!

?

?

640?wx_fmt=png

總結(jié)

?

今天我們學(xué)習(xí)了如何保存登錄信息,下期我將會(huì)教大家如何爬取淘寶商品信息并做數(shù)據(jù)分析,還是挺有意思的,期待吧!

看到很多同學(xué)會(huì)在學(xué)習(xí)群里交流一些以前寫(xiě)的案例,感覺(jué)自己做的這些教程有意義,看到大家在學(xué)習(xí),我心里超開(kāi)心。

源碼:https://github.com/pig6/login_taobao

【END】

Python的學(xué)習(xí)方式

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

640?wx_fmt=jpeg

?熱 文 ?推 薦?

?馬云談 5G 危機(jī);騰訊推出車(chē)載版微信;Ant Design 3.22.1 發(fā)布 | 極客頭條

?漫畫(huà):什么是旅行商問(wèn)題?

程序員易踩的 9 大坑!

?公開(kāi)課 | 如何用圖譜挖掘商業(yè)數(shù)據(jù)背后的寶藏?

?開(kāi)學(xué)了,復(fù)旦老師教你如何玩轉(zhuǎn)“0”“1”浪漫!| 人物志

?與曠視、商湯等上百家企業(yè)同臺(tái)競(jìng)技?AI Top 30+案例評(píng)選等你來(lái)秀!

?“根本就不需要 Kafka 這樣的大型分布式系統(tǒng)!”

?他是葉問(wèn)制片人也是紅色通緝犯, 他讓泰森卷入ICO, 卻最終演變成了一場(chǎng)狗血的羅生門(mén)……

?如何寫(xiě)出讓同事無(wú)法維護(hù)的代碼?

?

?

?

?

?

640?wx_fmt=png

你點(diǎn)的每個(gè)“在看”,我都認(rèn)真當(dāng)成了喜歡


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产精品免费视频能看 | 国产精品久久久久久搜索 | 久草视频精品 | 成人在线观看一区 | 久久久日韩精品国产成人 | 色一区二区 | 色综合久久天天综合观看 | 在线观看精品一区 | 黄色一级免费网站 | 好吊色妞| 日本一级毛片视频在线看 | 奇米网在线视频 | 日本福利片国产午夜久久 | 天天综合天天干 | 国产色视频一区 | 性夜影院爽黄a爽免费看网站 | 按摩一级片 | 国产精品高清一区二区三区 | 久久久国产精品免费看 | 波多野结衣中文字幕一区 | 在线欧美视频免费观看国产 | 欧美va放荡人妇大片 | 精品欧美一区二区三区在线观看 | 6080亚洲精品一区 | 久久精品成人免费看 | 国产成人丝袜网站在线观看 | 久久国产三级精品 | 日韩不卡中文字幕 | 国产亚洲综合精品一区二区三区 | 国产毛片一区二区三区 | 在线观看麻豆国产精品 | 日韩欧美一级毛片精品6 | 久久久久综合精品福利啪啪 | 国产成人拍精品视频网 | 毛片网页 | 西西做人爱免费视频 | 国产三级在线精品男人的天堂 | 香蕉人精品视频多人免费永久视频 | 亚洲精品国自产拍影院 | 九九在线精品视频xxx | 老师邪恶影院a啦啦啦影院 老师在办公室被躁到白浆 老湿机午夜影院 |