萬物皆可秒——淘寶秒殺Python腳本,掃貨618,備戰雙11!


更多精彩內容,歡迎關注公眾號:數量技術宅,也可添加技術宅個人微信號:sljsz01,與我交流。

總是搶不到想要的寶貝?試試Python腳本

對於淘寶、天貓,相信大家已經無比的熟悉,在每年的雙十一、雙十二,或是其他購物節,平台都會上架性價比超高的一些商品,商品的性價比越高,自然吸引購買者的眼光也越多。不知道你是否有這樣的經歷,半夜卡着點等待心儀商品放出,狂點手機,卻一秒庫存不足。這是因為,背后有許許多多的搶購機器人,在與你競爭,在程序面前,眼睛看到+手工點擊的速度,無疑是慢了。

本次的文章,技術宅將分享一個淘寶/天貓的秒殺腳本,這個腳本用Python編寫,使用到了Python的三方庫selenium,並且通過selenium + chromedriver,用程序控制chrome瀏覽器,完成搶購的一系列操作。有了這個腳本,大家至少可以與其他的機器人站在同一起跑線上,公平的搶購喜歡的寶貝。

selenium 安裝與 chromedriver安裝

我們前文提到,Python腳本中使用了selenium庫,而selenium又通過chromedriver來控制瀏覽器的鼠標點擊等操作。所以,我們的第一步,是正確的安裝與配置selenium以及chromedriver。

selenium的安裝很簡單,與其他Python三方庫一樣,我們直接用pip安裝。

pip install selenium

chromedriver的安裝,首先,chromedriver的版本很關鍵,我們需要選擇的chromedriver版本,一定要與Chrome的版本一致。因此, 我們需要查看Chrome版本,在瀏覽器中輸入chrome://version/

這個示例中Chrome的版本是 72.0.3626, 我們再到以下兩個網站的其中之一,去下載對應版本的chromedriver。

1、http://chromedriver.storage.googleapis.com/index.html

2、https://npm.taobao.org/mirrors/chromedriver/

下載完成后,解壓壓縮包,找到chromedriver.exe復制到chrome的安裝目錄(其實也可以隨便放一個文件夾)。復制chromedriver.exe文件的路徑並加入到電腦的環境變量中去。具體的:

進入環境變量編輯界面,添加到用戶變量即可,雙擊PATH,將文件位置(例如我們的是 C:\Program Files (x86)\Google\Chrome\Application\)添加到后面。

完成安裝后,我們到cmd界面, 輸入chromedriver,如果下方給出了chromedriver的版本號,說明已經安裝成功。

我們再通過Python庫selenium,來調用chromedriver,以此來簡單測試chromedriver的功能。如果我們未配置環境變量,可用如下代碼進行測試

from selenium import webdriver
import time

def main():
   chrome_driver = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'  #chromedriver的文件位置
   b = webdriver.Chrome(executable_path = chrome_driver)
   b.get('https://www.google.com')
   time.sleep(5)
   b.quit()

if __name__ == '__main__':
   main()

而如果我們已經配置好了環境變量,可以通過另一端代碼來進行測試

from selenium import webdriver
import time

def main():
   b = webdriver.Chrome()
   b.get('https://www.baidu.com')
   time.sleep(5)
   b.quit()

if __name__ == '__main__':
   main()

核心模塊代碼解析

安裝、配置完selenium與chromedriver之后,我們就可以開始編寫秒殺腳本的核心邏輯了。核心邏輯,我們通過封裝函數來實現各個步驟。

第一步,啟動chromedriver,並登陸淘寶。這里需要注意的是,我們通過控制chromedriver打開淘寶主頁,進入到登陸界面后,需要手工掃碼進行登陸。這一步驟無法做到全自動。

第二步,登陸后,我們仍然是通過chromedriver控制,進入購物車界面,並設定一個60秒的定時刷新,即每隔60秒刷新一遍購物車界面,使得我們的淘寶賬戶保持在登陸狀態。直到當前的時間與我們所設定寶貝的搶購時間相差小於100秒,再進入下一步。

第三步,通過chromedriver選中購物車全部商品,將本地時間與淘寶服務器時間校准,以淘寶服務器返回時間作為標准時間,一旦淘寶時間到達我們搶購的時間,立即從購物車提交訂單。此時有兩種情況,如果我們提交訂單的任務發送的太早,提交訂單按鈕還沒有出現,此時我們重復提交訂單步驟,一直到按鈕出現;另一種情況,提交訂單按鈕在我們發送提交請求的時候已經可用了,那么直接提交成功。

第四步,付款,由於部分搶購是以付款為順序為優先級的,我們將付款操作也加入秒殺腳本的流程,並作為最后一步,當我們提交訂單成功后,腳本將自動幫助我們執行支付寶的付款。此處需要注意的是,我們需要在腳本中提前設置好正確的6位數支付密碼。

秒殺腳本使用示例

介紹完了秒殺腳本的核心邏輯,接下來,我們以天貓超市搶購茅台酒為例,來為大家演示這個秒殺腳本的執行流程。我們以茅台舉例,並不意味着這個腳本只能搶購茅台,任何加入購物車的商品,在任何的時間,都可以用這個腳本來執行到點的秒殺。茅台由於天貓超市每天的量很有限,加上各類搶購的外掛很多,成功率比較低,但對於其他商品來說,這個秒殺腳本經過我們的對比測試,相比較手工搶購,成功率將提高一個量級。

我們執行main.py主程序腳本,程序會通過chromdriver控制,啟動chrome自動打開淘寶主頁,並進入登陸界面。可用看到網頁上方有一行提示:Chrome正受到自動測試軟件的控制。

然后,我們通過手機淘寶掃碼登陸進入,登陸后,程序會自動進入購物車的界面,並每分鍾刷新一次,以防止登陸超時。

臨近搶購時間,程序選中購物車商品,並在搶購時間到達時,自動點擊結算、提交訂單。

提交訂單成功后,進入付款環節,如果付款成功,代表我們的這一次秒殺成功搶到心儀的商品了,而如果付款失敗,說明此次秒殺我們運氣不佳,有人先一步搶到了。不過總體來說,我們有了秒殺腳本,已經超越了90%用戶的搶購速度了。

如果你想要獲取這個Python秒殺腳本,歡迎掃碼添加數量技術宅個人微信,領取完整代碼。

 


往期干貨分享推薦閱讀

數字貨幣資金費策略

分享一個年化15%以上的無風險套利機會

網格交易系統開發

通過深度學習股價截面數據分析和預測股票價格

Omega System Trading and Development Club內部分享策略Easylanguage源碼

一個真實數據集的完整機器學習解決方案(下)

一個真實數據集的完整機器學習解決方案(上)

如何使用交易開拓者(TB)開發數字貨幣策略

股指期貨高頻數據機器學習預測

如何使用TradingView(TV)回測數字貨幣交易策略

如何投資股票型基金?什么時間買?買什么?

【數量技術宅|量化投資策略系列分享】基於指數移動平均的股指期貨交易策略

AMA指標原作者Perry Kaufman 100+套交易策略源碼分享

【 數量技術宅 | 期權系列分享】期權策略的“獨孤九劍”

【數量技術宅|金融數據系列分享】套利策略的價差序列計算,恐怕沒有你想的那么簡單

【數量技術宅|量化投資策略系列分享】成熟交易者期貨持倉跟隨策略

如何獲取免費的數字貨幣歷史數據

【數量技術宅|量化投資策略系列分享】多周期共振交易策略

【數量技術宅|金融數據分析系列分享】為什么中證500(IC)是最適合長期做多的指數

商品現貨數據不好拿?商品季節性難跟蹤?一鍵解決沒煩惱的Python爬蟲分享

【數量技術宅|金融數據分析系列分享】如何正確抄底商品期貨、大宗商品

【數量技術宅|量化投資策略系列分享】股指期貨IF分鍾波動率統計策略

【數量技術宅 | Python爬蟲系列分享】實時監控股市重大公告的Python爬蟲


免責聲明!

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



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