1. 程式人生 > >Python 實現淘寶秒殺

Python 實現淘寶秒殺

新手學習Python,之前在網上看見一位朋友寫的40行Python程式碼搞定京東秒殺,想在淘寶上幫女朋友搶玩偶,所以就照貓畫虎的寫了下淘寶的秒殺指令碼,經自己實驗可行。直接上程式碼:

#-*- coding: UTF-8 -*-

import os
from selenium import webdriver
import datetime
import time

chromedriver = "/usr/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)

def
login(uname, pwd):
driver.get("https://www.taobao.com") if driver.find_element_by_link_text("親,請登入"): driver.find_element_by_link_text("親,請登入").click(); time.sleep(1) if driver.find_element_by_link_text("密碼登入"): driver.find_element_by_link_text("密碼登入").click(); time.sleep(1
) if driver.find_element_by_name("TPL_username"): driver.find_element_by_name("TPL_username").send_keys(uname); time.sleep(1) if driver.find_element_by_name("TPL_password"): driver.find_element_by_name("TPL_password").send_keys(pwd); time.sleep(2) if driver.find_element_by_id("J_SubmitStatic"
): driver.find_element_by_id("J_SubmitStatic").click(); time.sleep(1) driver.get("https://cart.taobao.com/cart.htm") if driver.find_element_by_id("J_SelectAll1"): driver.find_element_by_id("J_SelectAll1").click() time.sleep(3) if driver.find_element_by_link_text("結 算"): driver.find_element_by_link_text("結 算").click(); now = datetime.datetime.now() print('login success:', now.strftime('%Y-%m-%d %H:%M:%S')) def buy_on_time(buytime): while True: now = datetime.datetime.now() if now.strftime('%Y-%m-%d %H:%M:%S') == buytime: while True: try: driver.find_element_by_link_text('提交訂單').click() except: time.sleep(1) time.sleep(0.1) #中文賬號的時候要給它編碼一下,不然會出錯 login("中文賬號".decode('utf-8'),'密碼') #login("英文賬號",'密碼') #buy_on_time('2017-05-06 21:30:01')

程式碼裡面有很多的time.sleep(),主要是防止操作太快,網頁沒有刷新出來就會讀不到下面的元素,由於淘寶可能會出現滑塊驗證,所以我讓輸入賬號和密碼之後休眠了3秒,沒有操作的太快,所以沒有出現滑塊驗證。但是去掉那個time.sleep(3)之後,就彈出了滑塊驗證,不知道為什麼。