最近,小明為了達成小姐姐的愿望,在某寶買到心儀的寶貝,再加上又迷上了python,就通過python輕而易舉地實作了(個人宣告:對Java來說,這并不是背叛),
需求分析&前期準備
需求其實很簡單,正常購物,那我們平常的購物流程如下所示:

開始之前,我們需要準備一下程式運行環境,
環境
- 系統:Windows/Mac OS
- Python版本:3.7.2
為了讓程式模擬我們每一步操作,給大家介紹一個利器:Selenium
Selenium測驗同學應該會感覺特別親切,它是一個自動化測驗工具,通過它我們可以驅動瀏覽器執行特定的動作,如點擊、下拉等等操作,所見即所得,
Selenium的安裝
運行如下命令:
pip install 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腳本,用來驗證環境搭建是否成功:
from selenium import webdriver
# 打開Chrome瀏覽器
if __name__ == '__main__':
browser = webdriver.Chrome()
運行代碼后,如果成功打開了一個新的瀏覽器,就證明我們的環境安裝的沒問題,接下來就可以愉快的購物了,
腳本撰寫
對比上面淘寶購物流程圖,對應代碼如下:
- 打開淘寶網站
browser.get("https://www.taobao.com")
- 登錄
首先是跳轉到登陸頁
browser.find_element_by_link_text("親,請登錄").click()
登錄方式選擇二維碼
browser.find_element_by_class_name("icon-qrcode").click()
用手機進行掃碼成功之后進行下一步,
- 登錄成功后,打開購物車
browser.get("https://cart.taobao.com/cart.htm")
- 勾選商品
browser.find_element_by_id("J_SelectAll1").click()
推薦選擇全選,但如果你的購物車商品比較多,又不想全選購買,那就暫先手動勾選想要下單的商品??,
- 結算
browser.find_element_by_link_text("結 算").click()
- 提交訂單
browser.find_element_by_link_text('提交訂單').click()
只要下單成功,接下來的付款,不用著急,只要在規定的時間內支付就好,
以上就是完整購物的流程,那秒殺是如何實作呢?
秒殺的實作
思路其實很簡單,就是在正常購物的基礎上增加一個時間的判斷:如果當前時間到了指定的時間點,就觸發下單,
獲取當前時間,需要使用到datetime這個內置模塊,代碼如下:
import datetime
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
代碼梳理
- 定義一個login函式,用來登錄
- 定義一個picking函式勾選購物車中的商品
- 定義一個buy函式等待搶購時間,定時秒殺
完整代碼請點擊訪問我的github
推薦檔案
- Selenium-Python中文檔案
今晚可以不加班!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/158882.html
標籤:Java
下一篇:也來聊聊 HTTPS.
