Python使用Selenium實(shí)現(xiàn)淘寶搶單的流程分析
最近,小明為了達(dá)成小姐姐的愿望,在某寶買到心儀的寶貝,再加上又迷上了python,就通過(guò)python輕而易舉地實(shí)現(xiàn)了(個(gè)人聲明:對(duì)Java來(lái)說(shuō),這并不是背叛)。
需求分析&前期準(zhǔn)備
需求其實(shí)很簡(jiǎn)單,正常購(gòu)物。那我們平常的購(gòu)物流程如下所示:

開(kāi)始之前,我們需要準(zhǔn)備一下程序運(yùn)行環(huán)境。
環(huán)境系統(tǒng):Windows/Mac OS Python版本:3.7.2為了讓程序模擬我們每一步操作,給大家介紹一個(gè)利器:Selenium
Selenium測(cè)試同學(xué)應(yīng)該會(huì)感覺(jué)特別親切。它是一個(gè)自動(dòng)化測(cè)試工具,通過(guò)它我們可以驅(qū)動(dòng)瀏覽器執(zhí)行特定的動(dòng)作,如點(diǎn)擊、下拉等等操作,所見(jiàn)即所得。
Selenium的安裝
運(yùn)行如下命令:
pip install selenium
但若想使用Selenium成功調(diào)用Chrome瀏覽器完成相應(yīng)的操作,我們還需要一個(gè)媒介與瀏覽器對(duì)接。小明本次使用的是Chrome瀏覽器,因此就需要通過(guò)ChromeDriver來(lái)驅(qū)動(dòng)。
ChromeDriver的安裝
這里是谷歌瀏覽器ChromeDriver的官方下載地址:https://chromedriver.storage.googleapis.com/index.html我們需要根據(jù)自己的Chrome瀏覽器版本,找到相應(yīng)版本的ChromeDriver,再根據(jù)你電腦系統(tǒng)的平臺(tái)類型進(jìn)行下載、解壓。
windows:將其放置在Python安裝路徑下Scripts文件夾下 Mac OS:將其放置在/usr/local/bin下環(huán)境配置到此結(jié)束,小明編寫了一個(gè)python腳本,用來(lái)驗(yàn)證環(huán)境搭建是否成功:
from selenium import webdriver# 打開(kāi)Chrome瀏覽器if __name__ == ’__main__’:browser = webdriver.Chrome()
運(yùn)行代碼后,如果成功打開(kāi)了一個(gè)新的瀏覽器,就證明我們的環(huán)境安裝的沒(méi)問(wèn)題,接下來(lái)就可以愉快的購(gòu)物了。
腳本編寫
對(duì)比上面淘寶購(gòu)物流程圖,對(duì)應(yīng)代碼如下:
打開(kāi)淘寶網(wǎng)站
browser.get('https://www.taobao.com')
登錄首先是跳轉(zhuǎn)到登陸頁(yè)
browser.find_element_by_link_text('親,請(qǐng)登錄').click()
登錄方式選擇二維碼
browser.find_element_by_class_name('icon-qrcode').click()
用手機(jī)進(jìn)行掃碼成功之后進(jìn)行下一步。
登錄成功后,打開(kāi)購(gòu)物車
browser.get('https://cart.taobao.com/cart.htm')
勾選商品
browser.find_element_by_id('J_SelectAll1').click()
推薦選擇全選,但如果你的購(gòu)物車商品比較多,又不想全選購(gòu)買,那就暫先手動(dòng)勾選想要下單的商品😅。
結(jié)算
browser.find_element_by_link_text('結(jié) 算').click()
提交訂單
browser.find_element_by_link_text(’提交訂單’).click()
只要下單成功,接下來(lái)的付款,不用著急,只要在規(guī)定的時(shí)間內(nèi)支付就好。以上就是完整購(gòu)物的流程。那秒殺是如何實(shí)現(xiàn)呢?
秒殺的實(shí)現(xiàn)
思路其實(shí)很簡(jiǎn)單,就是在正常購(gòu)物的基礎(chǔ)上增加一個(gè)時(shí)間的判斷:如果當(dāng)前時(shí)間到了指定的時(shí)間點(diǎn),就觸發(fā)下單。獲取當(dāng)前時(shí)間,需要使用到datetime這個(gè)內(nèi)置模塊,代碼如下:
import datetimenow = datetime.datetime.now().strftime(’%Y-%m-%d %H:%M:%S.%f’)
代碼梳理
定義一個(gè)login函數(shù),用來(lái)登錄 定義一個(gè)picking函數(shù)勾選購(gòu)物車中的商品 定義一個(gè)buy函數(shù)等待搶購(gòu)時(shí)間,定時(shí)秒殺完整代碼請(qǐng)點(diǎn)擊訪問(wèn)我的github
推薦文檔
Selenium-Python中文文檔
今晚可以不加班!
到此這篇關(guān)于Python使用Selenium實(shí)現(xiàn)淘寶搶單的文章就介紹到這了,更多相關(guān)Python實(shí)現(xiàn)淘寶搶單內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 解析原生JS getComputedStyle2. 低版本IE正常運(yùn)行HTML5+CSS3網(wǎng)站的3種解決方案3. 怎樣才能用js生成xmldom對(duì)象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?4. ASP常用日期格式化函數(shù) FormatDate()5. 詳解盒子端CSS動(dòng)畫性能提升6. XHTML 1.0:標(biāo)記新的開(kāi)端7. chat.asp聊天程序的編寫方法8. xpath簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理9. asp中response.write("中文")或者js中文亂碼問(wèn)題10. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法

網(wǎng)公網(wǎng)安備