1. 程式人生 > 其它 >手把手教你編寫Python搶購指令碼

手把手教你編寫Python搶購指令碼

想買mate40,但總是搶不到,所以想試著能不能寫個指令碼程式碼。

第一步:把想要搶購的商品加進購物車,注意:指令碼是對購物車內全部商品進行下單操作,所以不夠買的商品最好先從購物車內刪除。
第二步:寫好Python指令碼,在搶購之前執行,並設定好搶購時間。

很多人學習python,不知道從何學起。

很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。

很多已經做案例的人,卻不知道如何去學習更加高深的知識。

那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教程,電子書籍,以及課程的原始碼!

QQ群:861355058

歡迎加入,一起討論 一起學習!

Python指令碼實現

  • 安裝Python。我安裝的是anaconda
  • 安裝webdriver擴充套件。它是Selenium模組的一部分。Selenium是一個用於Web應用程式測試的工具,用於測試你的應用程式看是否能夠很好得工作在不同瀏覽器和作業系統之上。Selenium測試直接執行在瀏覽器中,就像真正的使用者在操作一樣。所以其實就是安裝Selenium:Win+R,輸入cmd,在命令列中輸入pip show selenium
  • 安裝chrome瀏覽器(因為我用的是谷歌)
  • 安裝chromedriver。它是chrome的外掛,是為了webDriver能通過操作chromedriver來控制chrome瀏覽器自動操作,如開啟網頁,點選按鈕等操作。

下載地址:


http://chromedriver.storage.googleapis.com/index.html或者https://npm.taobao.org/mirrors/chromedriver/

**注意:下載時要根據電腦系統和chrome瀏覽器版本來選擇對應的chromedriver版本。**可以通過瀏覽器右上角的三點→幫助→關於Google Chrome來檢視自己的chrome版本。


下載chromedriver安裝包後,進行解壓,放在chrome安裝的同級目錄下,同時在環境變數PATH中新增路徑。


然後用以下程式碼檢驗是否安裝成功:


然鵝,此時我遇到了錯誤,如下


於是,我把chromedriver.exe放到了我python指令碼的資料夾後,就完美解決問題了!


【補充】
我知道自己為什麼出現上面那個錯誤了,因為路徑沒輸入!
在下圖所示紅框處輸入自己的下載的chromedriver安裝路徑即可成功執行。

完整的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秒內完成掃碼")
        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:
        #記錄當前時間,使用datatime內建模組
        now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        print(times)
        print(now)
        # 對比時間,時間到的話就點選結算
        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)