# 导入时间模块,用于后续的延时操作
import time
# 导入selenium模块,用于网页自动化操作
from selenium import webdriver
from selenium.common import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 导入win32com.client模块,用于语音播报
import win32com.client
# 设置请求头,模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36'}
# 初始化语音播报对象
speaker = win32com.client.Dispatch("SAPI.SpVoice")
# 初始化 Edge 浏览器
browser = webdriver.Edge()
# 访问淘宝首页
browser.get("https://www.taobao.com")
# 等待页面加载完成
time.sleep(3)
# 找到并点击登录按钮
login_button = browser.find_element(By.LINK_TEXT, "亲,请登录")
login_button.click()
# 提示用户尽快完成登录
print("请尽快扫码登录")
# 使用显式等待检测用户是否登录成功
try:
# 等待最多30秒,直到找到用户名元素,表示用户已登录
WebDriverWait(browser, 40).until(
EC.presence_of_element_located((By.CLASS_NAME, "site-nav-user"))
)
print("登录成功")
except TimeoutException:
print("登录超时,请重新尝试")
browser.quit()
exit()
# 进入购物车页面
browser.get("https://cart.taobao.com/cart.htm")
# 等待页面加载完成
time.sleep(4)
# 尝试全选购物车中的商品
while True:
try:
select_all_checkbox = browser.find_element(By.XPATH, '//*[@id="cart-operation-fixed"]/label/span[1]/input')
select_all_checkbox.click()
break
except Exception as e:
# 如果未找到全选按钮,则重试
print(f"未找到全选按钮,重试中... {e}")
time.sleep(20)
# 等待一段时间以确保全选操作完成
time.sleep(4)
# 尝试点击结算按钮
while True:
try:
settle_button = browser.find_element(By.XPATH, '//*[@id="settlementContainer_1"]/div[4]/div/div[2]')
settle_button.click()
# 提示用户结算成功并进行语音播报
print("主人,结算提交成功,我已帮全买到商品啦,请及时支付订单")
speaker.Speak("主人,结算提交成功,我已帮买到商品啦,请及时支付订单")
time.sleep(1)
break
except Exception as e:
# 如果未找到结算按钮,则重试
print(f"未找到结算按钮,重试中... {e}")
time.sleep(1)
# 尝试提交订单
while True:
try:
submit_order_button = browser.find_element(By.XPATH, '//*[@id="submitOrder"]/div/div[2]/div')
submit_order_button.click()
# 提示用户抢购成功
print("抢购成功,请尽快付款")
break
except Exception as e:
# 如果未找到提交订单按钮,则重试
print(f"未找到提交订单按钮,重试中... {e}")
time.sleep(1)
# 等待一段时间以确保订单提交操作完成
time.sleep(0.01)
# 尝试支付订单
while True:
try:
# 找到支付按钮并点击
pay_button = browser.find_element(By.XPATH, '//*[@id="settlementContainer_1"]/div[4]/div/div[2]')
pay_button.click()
# 暂停脚本,等待用户手动输入支付密码
input("请手动输入支付密码后按回车键继续...")
# 确认支付按钮是否仍然存在,防止用户在输入密码期间页面发生变化
confirm_pay_button = browser.find_element(By.XPATH, '//*[@id="settlementContainer_1"]/div[4]/div/div[2]')
confirm_pay_button.click()
# 提示用户支付成功
print("支付成功,请检查订单状态")
speaker.Speak("支付成功,请检查订单状态")
break
except Exception as e:
# 如果未找到支付按钮,则重试
print(f"未找到支付按钮,重试中... {e}")
time.sleep(1)
# 关闭浏览器
browser.quit()
清空购物车
最新推荐文章于 2025-12-15 18:05:39 发布
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Python3.10
Conda
Python
Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

2431

被折叠的 条评论
为什么被折叠?



