Python使用Selenium實現淘寶搶單的流程分析


最近,小明為了達成小姐姐的願望,在某寶買到心儀的寶貝,再加上又迷上了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中文文檔

今晚可以不加班!

到此這篇關於Python使用Selenium實現淘寶搶單的文章就介紹到這了,更多相關Python實現淘寶搶單內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM