<ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>


      最近想爬取淘寶的一些商品,但是發(fā)現(xiàn)如果要使用搜索等一些功能時基本都需要登錄,所以就想出一篇模擬登錄淘寶的文章!

      看了下網(wǎng)上有很多關于模擬登錄淘寶,但是基本都是使用scrapy、pyppeteer、selenium等庫來模擬登錄,但是目前我們還沒有講到這些庫,只講了
      requests庫,那我們今天就來使用requests庫模擬登錄淘寶!

      講模擬登錄淘寶之前,我們來回顧一下之前用requests庫模擬登錄豆瓣
      <https://blog.csdn.net/u014044812/article/details/96484905>和新浪微博
      <https://blog.csdn.net/u014044812/article/details/98103382>的過程:這一類模擬登錄是比較簡單的登錄,
      只需要在請求登錄時將用戶名和密碼上傳驗證通過就成功了,也就是說一步到位!

      而淘寶登錄就比較復雜,為什么說復雜呢?因為淘寶登錄涉及參數(shù)多且請求不止一次!我們就先來講講淘寶登錄的流程,先把流程原理搞懂,再去敲代碼,這樣大家就容易理解!

      一、淘寶登錄流程

      為了便于大家理解,豬哥畫了一個非標準的淘寶登錄請求時序圖


      淘寶ua參數(shù):ua(User-Agent)故名用戶代理,淘寶的ua參數(shù)加入了瀏覽器、ip、電腦、時間等信息,然后加密生成,在很多地方使用,不僅僅是登錄!

      上圖是比較詳細的流程圖,從代碼層面考慮豬哥將模擬登錄淘寶分為以下四個步驟:

      * 輸入用戶名后,瀏覽器會向淘寶(taobao.com)發(fā)起一個post的請求,判斷是否出現(xiàn)滑塊驗證!
      * 用戶輸入密碼后,瀏覽器向淘寶(taobao.com)又發(fā)起一個post請求,驗證用戶名密碼是否正確,如果正確則返回一個token。
      * 瀏覽器拿著token去阿里巴巴(alibaba.com)交換st碼!
      * 瀏覽器獲取st碼之后,拿著st碼獲取cookies,登錄成功
      這里也許有同學會提出疑問:為什么淘寶(taobao.com)驗證通過之后還要拿著 token去阿里巴巴(alibaba.com)交換st碼呢?
      這個我們放后面講!

      二、模擬登錄實現(xiàn)

      上面我們只講了大概的登錄流程,這里豬哥會先詳細講解下每一步的操作,然后再貼出實現(xiàn)代碼!

      1.判斷是否需要驗證碼

      目前我們在登錄淘寶的時候,大多數(shù)情況下是不會出現(xiàn)滑塊驗證碼,豬哥嘗試了很多次的登錄退出也只是在中間出現(xiàn)過一次,那究竟是什么在控制是否需要滑塊驗證碼的呢?


      從上圖可以看出,當豬哥輸入用戶名后,瀏覽器就會發(fā)起一個post請求,來驗證是否需要出現(xiàn)滑塊驗證碼,如果返回true,滑塊驗證碼則出現(xiàn)!否則不出現(xiàn),一般是不會出現(xiàn)!

      圖中我們可以看到這次post請求上傳了兩個參數(shù):username、ua!

      前面豬哥說過ua為瀏覽器、ip、設備信息等多信息加密參數(shù),所以豬哥猜想淘寶的驗證碼是否出現(xiàn)不僅僅從賬號角度,還有ip、設備等角度!

      舉個例子:某臺設備可能出現(xiàn)登錄過大量的賬號,這時候淘寶就可以從ua參數(shù)中獲取設備號,然后對該設備進行限制!

      知道了流程和請求鏈接及參數(shù)之后,我們就可以用代碼來請求了!


      2.驗證用戶名密碼

      這里一步也就是上面時序圖圖中的第5步:請求登錄,這里會將用戶名、ua參數(shù)、加密密碼等30十幾個參數(shù)post到淘寶(taobao.com)去驗證。

      我們來用代碼實現(xiàn)一下,大家別被這么多參數(shù)嚇到,都是從瀏覽器復制過來的!

      看看請求結果!

      可以看到申請st碼鏈接后面帶了一個token,具體token是干什么用的后面我們再分析!

      3.申請st碼

      上面我們已經(jīng)申請到了淘寶(taobao.com)的token,這一步就是用token來換取st碼。

      到這里很多人可能會有疑問:為什么淘寶登錄需要這么麻煩呢?直接在 taobao.com 登錄不就可以嗎?為什么要先在taobao驗證用戶名密碼,通過之后再去
      alibaba.com 換取st碼登錄呢?

      任何公司的框架都是慢慢演變的結果,我想最開始的淘寶登錄肯定沒這么復雜。但是隨著阿里巴巴的慢慢壯大,很多事業(yè)線都劃分開來,但是這些事業(yè)線之間又有關聯(lián)性,比如用戶
      登錄了淘寶賬號之后天貓就不需要再登錄了呢?(注意淘寶和天貓的頂級域名不同,所以不能共享cookis)為了解決這個問題,單點登錄就出現(xiàn)了。

      單點登錄(Single Sign On),簡稱為
      SSO,是目前比較流行的企業(yè)業(yè)務整合的解決方案之一。SSO的定義是在多個應用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統(tǒng)。 ——百度百科

      很多大企業(yè)幾乎都有做單點登錄,那阿里的單點登錄系統(tǒng)肯定是由母公司阿里巴巴(alibaba.com)來做啦,所有子公司去調用母公司接口!


      我們再回來分析淘寶登錄為何要如此復雜就很好理解了:用戶數(shù)據(jù)在淘寶這里,所以需要現(xiàn)在淘寶(taobao.com)驗證用戶名和密碼,驗證通過生成一個token,瀏覽器拿著token去和阿里巴巴(alibaba.com)申請單點登錄碼(st碼),阿里巴巴收到請求驗證token通過則返回st碼,所以用token換st碼的原因就在于單點登錄!

      理解了設計原理之后,代碼實現(xiàn)起來就很清晰了!


      4.使用st碼登錄

      成功獲取st碼之后我們就可以來登錄了,這一步是通過st碼獲取登錄的cookies。

      到這里我們就已經(jīng)模擬登錄淘寶成功了!

      5.獲取淘寶昵稱

      其實上面我們就已經(jīng)登錄淘寶成功并返回用戶主頁的鏈接,我們?yōu)榱诉M一步驗證登錄成功,就請求一下淘寶用戶主頁,順便把淘寶昵稱提取出來吧!


      三、總結

      整體講完之后我們來稍微總結一下吧,主要從代碼結構和存在的問題兩個方面說下:

      1.代碼結構

      來放出一張代碼結構圖,讓大家直觀了解

      這就是我們前面說過的模擬登錄淘寶的四個步驟,不過這里我們是用代碼實現(xiàn)了!

      2.存在問題


      在寫這篇教程之前豬哥也是先在網(wǎng)上了解,然后自己用瀏覽器和抓包工具(Charles)一步一步實踐,最重要的是你先要了解淘寶登錄的大概流程,不然你實際操作起來會一頭霧水,下面就要講講目前遇到的問題和存在的問題吧

      * 首先第一個問題便是淘寶的滑塊解鎖,目前requests還沒有很好的破解辦法,后面介紹了一些爬蟲框架之后我們再來破解吧!
      * 豬哥嘗試了很多次(50次以上)登錄退出都沒出現(xiàn)過滑塊驗證碼。
      *
      網(wǎng)上有人使用代理ip,這里豬哥也沒用,只要你不是超級超級超級頻繁且大量爬取數(shù)據(jù),一般大廠都不太會去封ip,因為有誤傷率和影響用戶面太廣,也許一封就是整個小區(qū)。
      * 在第二步驗證用戶名和密碼時,上傳了近30個參數(shù),如果你把username、ua、加密密碼復制進去驗證還是不通過可嘗試把那30個參數(shù)換成你瀏覽器中的!
      * 在第三步和第四步偶爾會出現(xiàn)一次錯誤,重試一下就可以!
      看到這里是不是感覺淘寶模擬登錄就清晰明了很多了,感興趣的同學可以收藏轉發(fā),周末有空自己嘗試一下。征服淘寶登錄,其他登錄也就相對簡單了!

      源碼地址:關注微信公眾號「裸睡的豬」,回復:模擬登錄淘寶
      <https://github.com/pig6/login_taobao>
      ?

      友情鏈接
      ioDraw流程圖
      API參考文檔
      OK工具箱
      云服務器優(yōu)惠
      阿里云優(yōu)惠券
      騰訊云優(yōu)惠券
      京東云優(yōu)惠券
      站點信息
      問題反饋
      郵箱:[email protected]
      QQ群:637538335
      關注微信

        <ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>
          国产做爰又粗又大又硬又大视频 | 天天干夜夜操成人版 | 亚洲 自拍 另类小说综合图区 | 欧美夜 | 一部一直喷奶水的av | 亚洲孕妇孕交ⅩⅩⅩ | 狠狠躁夜夜躁人人爽超碰女h | 东京热不卡视频 | av小说在线播放 kimkardashianxxxx裸乳 | 日韩人妻中文无码一区二区中文无码 |