1. 程式人生 > >程式設計師是如何應付女朋友雙十一的?幫她寫一個自動下單指令碼就行!

程式設計師是如何應付女朋友雙十一的?幫她寫一個自動下單指令碼就行!

程式設計師是如何應付女朋友雙十一的?幫她寫一個自動下單指令碼就行!

 

接活後,冷靜下來分析一下,雙11活動中的商品雖然也具有“搶購”屬性,但是並不同於平時所熟悉的“秒殺”那麼激烈,人工瀏覽了一些淘寶雙十一的商品,總結出雙11商品一般分為以下兩種(配圖有些花裡胡哨,但為了更直觀說明):

  1. 限時優惠,比如前15分鐘享折扣更大。
  2. 限購數量,同秒殺類似,但是商品數量會多一些。

程式設計師是如何應付女朋友雙十一的?幫她寫一個自動下單指令碼就行!

 

程式設計師是如何應付女朋友雙十一的?幫她寫一個自動下單指令碼就行!

 

程式設計師是如何應付女朋友雙十一的?幫她寫一個自動下單指令碼就行!

 

二、思路分析:

 

程式設計師是如何應付女朋友雙十一的?幫她寫一個自動下單指令碼就行!

 

 

如上流程圖,分為兩步:

  1. 第一步,先把需要搶購的商品加購物車,注意因為後面搶購時為簡化技術,會對購物車所有商品進行下單,所以不購買的商品最好先從購物車刪掉。
  2. 第二步,提前寫好自動下單機器人(其實就是一個python指令碼),並讓機器人提前就開始執行,並且設定好搶購時間,一到時間機器人指令碼就會自動抓取。

三、機器人(指令碼)實現

程式碼由Python語言實現,此程式碼中引用到python多個擴充套件模組,除了selenium的webdriver,其它模組均為安裝python時自帶安裝,那麼要想成功執行此程式碼,需要通過如下四步部署執行環境:

  1. 安裝python,一般mac和linux系統都會預設安裝python,如果是windows系統,自己去google或百度一下。
  2. 安裝webdriver擴充套件,webdriver屬於selenium模組,Selenium是一個用於Web應用程式測試的工具。Selenium測試直接執行在瀏覽器中,就像真正的使用者在操作一樣,以在Mac為例進行安裝:
 sudo pipe install selenium
  1.  
  2. 安裝瀏覽器,以chrome為例,自己去安裝chrome瀏覽器,這個不用多說。
  3. 安裝chromedriver,也可以說它是chrome的一個外掛,是為了webDriver可以通過操作chomedriver來控制chrome瀏覽器進行自動操作,比如開啟網頁,點選按鈕等。
  4. 下載地址:http://chromedriver.storage.googleapis.com/index.html
  5. 注意下載時要根據電腦系統和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以及大量的學習教程哦!

執行程式碼流程為:

  1. 提前開啟手機淘寶二維碼掃描功能
  2. 執行程式碼(命令:python autobuy.py)
  3. 按照提示輸入開始下單時間
  4. 掃碼登入
  5. 靜等自動下單成功後,檢查價格是滿意,去付款。