代码:
#! /usr/bin/python
# -*- coding: utf-8 -*-
import datetime
import time
from selenium import webdriver
import win32com.client
speaker = win32com.client.Dispatch("SAPI.SPVOICE")
import sys
#抢购时间
Rush_to_buyTime = "2022-12-10 10:00:00.0000"
"""
前提:需将抢购的商品提前添加到购物车
1.打开谷歌浏览器
2.打开购物车网址准备登录
3.检测购物车内是否有物品 有就全选
4.等待时间 到达指定时间点击结算
5.最后提交订单
"""
browser = webdriver.Chrome()
def webdriver():
#淘宝购物车地址 需登录
browser.get("https://cart.taobao.com/cart.htm")
time.sleep(20)
#全选购物车内的商品
while True:
try:
if browser.find_element_by_id("J_SelectAll1"): #判断是否有全选按钮
browser.find_element_by_id("J_SelectAll1").click() #点击全选按钮
break
except:
print("检测购物车中没有任何商品,请将需抢购物品添加至购物车!")
sys.exit() #退出程序
pass
while True:
currentTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') #当前系统时间
print("当前时间:" + str(currentTime))
if currentTime > Rush_to_buyTime: #判断是否到达时间 到达抢购时间则点击结算按钮 并且提交订单
while True:
try:
if browser.find_element_by_link_text("结 算"):
browser.find_element_by_link_text("结 算").click()
time.sleep(4)
if browser.find_element_by_link_text("提交订单"):
browser.find_element_by_link_text("提交订单").click()
print("抢购成功!")
break
else:
print("抢购失败了~~")
break
except Exception as e:
print("程序结束~~~")
sys.exit()
else:
continue
# 判断抢购时间是否已超过
if Rush_to_buyTime > datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'):
webdriver()
else:
print("已超过商品抢购的时间!")
注意事项:
webdriver打开谷歌浏览器需对应谷歌浏览器版本的驱动
如遇报错:selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.的解决办法;
1.打开谷歌浏览器, 在地址栏输入 chrome://version/ 查看版本信息;
2. 看到自己浏览器的版本号后,下载相对应版本的谷歌浏览器驱动(地址:http://chromedriver.storage.googleapis.com/index.html);
5.把解压后的chromedriver.exe文件放入python的安装目录下;例如: C:\Python27;