最近,爲了達成小姐姐的願望:在某寶上搶到自己心儀的寶貝,小明使用Python輕而易舉地實現了搶單。於是,小明自然而然地迷上了Python,差點把小姐姐忘了。
需求分析&前期準備
需求其實很簡單,正常購物。我們日常的購物流程如下所示:
開始之前,我們需要準備一下程序運行環境。
環境
系統:Windows/Mac OS
Python版本:3.7.2
爲了讓程序模擬我們每一步操作,給大家介紹一個利器:Selenium
Selenium測試同學應該會感覺特別親切。它是一個自動化測試工具,通過它我們可以驅動瀏覽器執行特定的動作,如點擊、下拉等等操作,所見即所得。
Selenium的安裝
運行如下命令:
但若想使用Selenium成功調用Chrome瀏覽器完成相應的操作,我們還需要一個媒介與瀏覽器對接。小明本次使用的是Chrome瀏覽器,因此就需要通過ChromeDriver來驅動。
ChromeDriver的安裝
這裏是谷歌瀏覽器ChromeDriver的官方下載地址:https://chromedriver.storage.googleapis.com/index.html我們需要根據自己的Chrome瀏覽器版本,找到相應版本的ChromeDriver,再根據你電腦系統的平臺類型進行下載、解壓。
windows:將其放置在Python安裝路徑下
Scripts
文件夾下Mac OS:將其放置在
/usr/local/bin
下
環境配置到此結束,小明編寫了一個python腳本,用來驗證環境搭建是否成功:
運行代碼後,如果成功打開了一個新的瀏覽器,就證明我們的環境安裝的沒問題,接下來就可以愉快的購物了。
腳本編寫
對比上面淘寶購物流程圖,對應代碼如下:
打開淘寶網站
登錄
首先是跳轉到登陸頁
登錄方式選擇二維碼
用手機進行掃碼成功之後進行下一步。
登錄成功後,打開購物車
勾選商品
推薦選擇全選,但如果你的購物車商品比較多,又不想全選購買,那就暫先手動勾選想要下單的商品😅。
結算
提交訂單
只要下單成功,接下來的付款,不用着急,只要在規定的時間內支付就好。以上就是完整購物的流程。那秒殺是如何實現呢?
秒殺的實現
思路其實很簡單,就是在正常購物的基礎上增加一個時間的判斷:如果當前時間到了指定的時間點,就觸發下單。 獲取當前時間,需要使用到datetime這個內置模塊,代碼如下:
代碼梳理
定義一個login函數,用來登錄
定義一個picking函數勾選購物車中的商品
定義一個buy函數等待搶購時間,定時秒殺
完整代碼請點擊閱讀原文訪問我的github。
推薦文檔
Selenium-Python中文文檔
本文分享自微信公衆號 - 程序員小明(coderxiaoming)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。