本篇內容
1. python模擬登錄淘寶網頁
2. 獲取登錄用戶的所有訂單詳情
3. 學會應對出現驗證碼的情況
4. 體會一下複雜的模擬登錄機制
整體思路梳理
1. 手動到瀏覽器獲取 ua 碼以及 加密後的密碼,只獲取一次即可,一勞永逸。
2. 向登錄界面發送登錄請求,POST 一系列參數,包括 ua 碼以及密碼等等,獲得響應,提取驗證碼圖像。
3. 用戶輸入手動驗證碼,重新加入驗證碼數據再次用 POST 方式發出請求,獲得響應,提取 J_Htoken。
4. 利用 J_Htoken 向 alipay 發出請求,獲得響應,提取 st 碼。
5. 利用 st 碼和用戶名,重新發出登錄請求,獲得響應,提取重定向網址,存儲 cookie。
6. 利用 cookie 向其他個人頁面如訂單頁面發出請求,獲得響應,提取訂單詳情。
是不是沒看懂?沒事,下面我將一點點說明自己模擬登錄的過程,希望大家可以理解。
好,那麼接下來我們就從瀏覽器中獲取 ua 和 aes 密碼
點擊網絡選項卡,這時都是空的,什麼數據也沒有截取。這時你就在網頁上登錄一下試試吧,輸入用戶名啊,密碼啊,有必要時需要輸入驗證碼,點擊登錄。
恩,讀到這裡,你應該獲取到了屬於自己的 ua 和 password2 兩個內容。
輸入驗證碼並獲取J_HToken
經過博主本人親自驗證,有時候,在模擬登錄時你並不需要輸入驗證碼,它直接返回的結果就是前面所說的下一步用到的 J_Token,而有時候你則會需要輸入驗證碼,等你手動輸入驗證碼之後,重新請求登錄一次。
恩,請把裡面的 ua 和 password2 還有用戶名換成自己的進行嘗試,用我的可能會產生錯誤的。
運行結果
然後會蹦出瀏覽器,顯示了驗證碼的內容,這個需要你來手動輸入。
在這裡有小夥伴向我反映有這麼個錯誤
注意,到現在為止,你還沒有登錄成功,只是獲取到了J_HToken的值。
目前寫到的代碼如下
現在的運行結果是這樣的,我們已經可以得到 J_HToken 了,離成功又邁進了一步。
好,到現在為止,我們應該可以獲取到J_HToken的值啦。
利用J_HToken獲取st
直接利用st登錄
得到st之後,基本上就大功告成啦,一段辛苦終於沒有白費,你可以直接構建get方式請求的URL,直接訪問這個URL便可以實現登錄。
stURL = 'https://login.taobao.com/member/vst.htm?st=%s&TPL_username=%s' % (st,username)
比如
https://login.taobao.com/member/vst.htm?st=1uynJELa4hKfsfWU3OjPJCw&TPL_username=cqcre
另外還有頁碼的參數。
這是我的已買到的寶貝界面,審查元素可以看到,每一個寶貝都是tbody標籤包圍著。
我們現在想獲取訂單時間,訂單號,賣家店鋪名稱,寶貝名稱,原價,購買數量,最後付款多少,交易狀態這幾個量,具體就不再分析啦,正則表達式還不熟悉的同學請參考前面所說的正則表達式的用法,在這裡,正則表達式匹配的代碼是
先看一下運行結果吧~
最終代碼如下
tool.py
taobao.py
閱讀更多 繁華落盡and曲終人散 的文章