Python 實現淘寶秒殺
阿新 • • 發佈:2019-02-06
新手學習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)之後,就彈出了滑塊驗證,不知道為什麼。