想買mate40,但總是搶不到,所以想試著能不能寫個腳本代碼。
第一步:把想要搶購的商品加進(jìn)購物車,注意:腳本是對購物車內(nèi)全部商品進(jìn)行下單操作,所以不夠買的商品最好先從購物車內(nèi)刪除。
第二步:寫好Python/ target=_blank class=infotextkey>Python腳本,在搶購之前運(yùn)行,并設(shè)置好搶購時間。
私信小編01即可獲取大量python學(xué)習(xí)資源
Python腳本實(shí)現(xiàn)
- 安裝Python。我安裝的是anaconda
- 安裝webdriver擴(kuò)展。它是Selenium模塊的一部分。Selenium是一個用于Web應(yīng)用程序測試的工具,用于測試你的應(yīng)用程序看是否能夠很好得工作在不同瀏覽器和操作系統(tǒng)之上。Selenium測試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣。所以其實(shí)就是安裝Selenium:Win+R,輸入cmd,在命令行中輸入pip show selenium
- 安裝chrome瀏覽器(因為我用的是谷歌)
- 安裝chromedriver。它是chrome的插件,是為了webDriver能通過操作chromedriver來控制chrome瀏覽器自動操作,如打開網(wǎng)頁,點(diǎn)擊按鈕等操作。
下載地址:
http://chromedriver.storage.googleapis.com/index.html或者h(yuǎn)ttps://npm.taobao.org/mirrors/chromedriver/
**注意:下載時要根據(jù)電腦系統(tǒng)和chrome瀏覽器版本來選擇對應(yīng)的chromedriver版本。**可以通過瀏覽器右上角的三點(diǎn)→幫助→關(guān)于Google Chrome來查看自己的chrome版本。
下載chromedriver安裝包后,進(jìn)行解壓,放在chrome安裝的同級目錄下,同時在環(huán)境變量PATH中添加路徑。
然后用以下代碼檢驗是否安裝成功:
然鵝,此時我遇到了錯誤,如下
于是,我把chromedriver.exe放到了我python腳本的文件夾后,就完美解決問題了!
【補(bǔ)充】
我知道自己為什么出現(xiàn)上面那個錯誤了,因為路徑?jīng)]輸入!
在下圖所示紅框處輸入自己的下載的chromedriver安裝路徑即可成功運(yùn)行。
完整的Python腳本代碼如下:
```python
# coding=utf-8
import os
from selenium import webdriver
import datetime
import time
from os import path
#此處chromedriver改為自己下載解壓的chromedriver的路徑
driver = webdriver.Chrome("E:/JupyterNotebookSavePath/chromedriver")
#driver.maximize_window()
def login():
#打開淘寶首頁,掃碼登陸淘寶
driver.get("https://www.taobao.com")
time.sleep(3)
if driver.find_element_by_link_text("親,請登錄"):
driver.find_element_by_link_text("親,請登錄").click()
print("請在15秒內(nèi)完成掃碼")
time.sleep(15)
#打開購物車列表首頁
driver.get("https://cart.taobao.com/cart.htm")
time.sleep(3)
#全選購物車
if driver.find_element_by_id("J_SelectAll1"):
driver.find_element_by_id("J_SelectAll1").click()
now = datetime.datetime.now()
print("login success:", now.strftime("%Y-%m-%d %H:%M:%S"))
def buy(times):
while True:
#記錄當(dāng)前時間,使用datatime內(nèi)置模塊
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(times)
print(now)
# 對比時間,時間到的話就點(diǎn)擊結(jié)算
if now == times:
try:
if driver.find_element_by_id("J_Go"):
driver.find_element_by_id("J_Go").click()
driver.find_element_by_link_text('提交訂單').click()
print('搶購成功,請盡快付款')
except:
print('請再次嘗試提交訂單')
print(now)
time.sleep(0.1)
if __name__ == "__main__":
times = input("請輸入搶購時間(例如格式:2021-02-01 00:00:00):")
login()
buy(times)