程式設計師是如何應付女朋友雙十一的?幫她寫一個自動下單指令碼就行!
阿新 • • 發佈:2018-11-21
接活後,冷靜下來分析一下,雙11活動中的商品雖然也具有“搶購”屬性,但是並不同於平時所熟悉的“秒殺”那麼激烈,人工瀏覽了一些淘寶雙十一的商品,總結出雙11商品一般分為以下兩種(配圖有些花裡胡哨,但為了更直觀說明):
- 限時優惠,比如前15分鐘享折扣更大。
- 限購數量,同秒殺類似,但是商品數量會多一些。
二、思路分析:
如上流程圖,分為兩步:
- 第一步,先把需要搶購的商品加購物車,注意因為後面搶購時為簡化技術,會對購物車所有商品進行下單,所以不購買的商品最好先從購物車刪掉。
- 第二步,提前寫好自動下單機器人(其實就是一個python指令碼),並讓機器人提前就開始執行,並且設定好搶購時間,一到時間機器人指令碼就會自動抓取。
三、機器人(指令碼)實現
程式碼由Python語言實現,此程式碼中引用到python多個擴充套件模組,除了selenium的webdriver,其它模組均為安裝python時自帶安裝,那麼要想成功執行此程式碼,需要通過如下四步部署執行環境:
- 安裝python,一般mac和linux系統都會預設安裝python,如果是windows系統,自己去google或百度一下。
- 安裝webdriver擴充套件,webdriver屬於selenium模組,Selenium是一個用於Web應用程式測試的工具。Selenium測試直接執行在瀏覽器中,就像真正的使用者在操作一樣,以在Mac為例進行安裝:
sudo pipe install selenium
- 安裝瀏覽器,以chrome為例,自己去安裝chrome瀏覽器,這個不用多說。
- 安裝chromedriver,也可以說它是chrome的一個外掛,是為了webDriver可以通過操作chomedriver來控制chrome瀏覽器進行自動操作,比如開啟網頁,點選按鈕等。
- 下載地址:http://chromedriver.storage.googleapis.com/index.html
- 注意下載時要根據電腦系統和chrome瀏覽器版本來選擇對應的chromedriver版本,比如我的電腦是MAC,chrome版本 70.0.3538.77,下載chromedricer版本是70.0.3538.67版本的chromedriver_mac64.zip包。
# coding=utf-8 import os from selenium import webdriver import datetime import time from os import path #此處chromedriver改為自己下載的路徑 driver = webdriver.Chrome("/Users/baidu/Downloads/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(buytime): while True: now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") print(buytime) print(now) # 對比時間,時間到的話就點選結算 if now > buytime: try: if driver.find_element_by_id("J_Go"): driver.find_element_by_id("J_Go").click() driver.find_element_by_link_text("提交訂單").click() except: time.sleep(0.1) print(now) time.sleep(0.1) if __name__ == "__main__": times = raw_input("請輸入搶購時間(例如格式:2018-11-11 00:00:00):") login() buy(times)
私信小編01 02 03 04 即可獲取數十套PDF以及大量的學習教程哦!
執行程式碼流程為:
- 提前開啟手機淘寶二維碼掃描功能
- 執行程式碼(命令:python autobuy.py)
- 按照提示輸入開始下單時間
- 掃碼登入
- 靜等自動下單成功後,檢查價格是滿意,去付款。