from selenium import webdriver
from time import sleep
import time, datetime
def login():
driver.get('https://www.taobao.com/')
driver.maximize_window()
if driver.find_element_by_xpath('//[@id="J_SiteNavLogin"]/div[1]/div[1]/a[1]'):
driver.find_element_by_xpath('//[@id="J_SiteNavLogin"]/div[1]/div[1]/a[1]').click()
print('请在15秒内扫码')
sleep(15)
driver.get('https://cart.taobao.com/')
now = datetime.datetime.now()
print('登陆成功,当前时间为', now.strftime('%Y-%m-%d %H:%M:%S.%f')) # 打印的是一个现行时间,两个时间大小比较,当前时间>抢购时间
def buy(times):
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
if now > times:
while True:
try: #全选操作
if driver.find_element_by_xpath('//[@id="J_SelectAll1"]/div/label'): #冒号按钮是判断存不存在,存在的话执行下一步
driver.find_element_by_xpath('//[@id="J_SelectAll1"]/div/label').click()
break
# 接下来做一个异常捕获,可能会报错,以方便到时候出错我们找到是哪里的问题
except:
print('找不到全选按钮!') # 如果没有全选,直接执行except,然后继续在while下寻找全选按钮
sleep(0.5) #但要注意这有个时间差,这里晚了0.01s,所以设定的时间必须早一点,0.01s不行,必须给个2~3s反应
while True:
try:
if driver.find_element_by_link_text('结 算'): # 可能会出错的原因xpath都是直接复制粘贴的
driver.find_element_by_link_text('结 算').click()
break
except:
print('找不到 结算按钮') #可能会出现bug,因为全选和结算在同一个界面,代码运行过快的话,计算机以为自己执行了,其实没执行
while True:
try:
if driver.find_element_by_xpath('//*[@id="submitOrderPC_1"]/div/a[2]'):
driver.find_element_by_xpath('//*[@id="submitOrderPC_1"]/div/a[2]').click()
#这里的break可写可不写,无所谓提交几次
except:
print('找不到 提交订单按钮!')
if name == 'main':
times = input('请输入抢购时间,格式为:2019-06-10 20:57:07.429161')
driver = webdriver.Chrome()
login()
buy(times)