Python自动执行淘宝秒杀操作

背景

 使用Selenium WebDriver自动执行淘宝秒杀操作,并在特定时间进行结算

项目开始

    设置

下载相应的Microsoft Edge WebDriver,然后将其直接拉到python的同一位置

下载地址:Microsoft Edge WebDriver | Microsoft Edge Developer分析

  1. 导入所需的库:

    • time:用于时间相关操作。
    • datetime:用于处理日期和时间。
    • webdriver:Selenium的核心库,用于模拟浏览器操作。
    • By:Selenium的定位元素方法。
    • win32com.client:用于调用Windows系统的语音功能。
    • WebDriverWait:Selenium的等待方法。
    • expected_conditions:Selenium的预期条件。
  2. 创建一个Windows系统语音功能的实例,用于将文字转换成语音。

  3. 设置秒杀开始时间为 '2024-06-01 17:18:00'。

  4. 初始化一个Edge浏览器的WebDriver实例。

  5. 打开淘宝网站并等待10秒。

  6. 执行登录操作,通过定位登录按钮并点击。

  7. 最大化浏览器窗口。

  8. 进入购物车页面并等待3秒。

  9. 全选购物车中的商品,通过定位全选按钮并点击。

  10. 进入一个无限循环,不断检查当前时间是否已经超过设定的秒杀开始时间。

    • 获取当前时间并打印出来。
    • 如果当前时间超过设定的秒杀开始时间,则点击结算按钮并跳出循环。
  11. 使用WebDriverWait等待页面中的一个元素(通过类名 'go-btn' 定位),最长等待时间为20秒。

  12. 一旦元素出现,点击该元素。

  13. 最后,使用语音功能提示用户结算提交成功,并提醒用户已经帮忙抢到商品,需要尽快支付订单。

python代码

import time
import datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
import win32com.client
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec

# 调用windows系统语音功能,可以将文字转成语音!
speaker = win32com.client.Dispatch("SAPI.SpVoice")
# 秒杀开始时间
times = '2024-06-01 17:18:00'
# 初始化webdriver
driver = webdriver.Edge()
driver.get("https://taobao.com")
time.sleep(10)
# 登录操作
driver.find_element(By.XPATH, '//*[@id="J_SiteNavLogin"]/div[1]/div[1]/a[1]').click()
# 最大化浏览器窗口
driver.maximize_window()
time.sleep(3)

# 进入购物车页面
driver.get("https://cart.taobao.com/cart.htm")
time.sleep(3)
# 全选购物车中的商品
driver.find_element(By.ID, "J_SelectAll1").click()
# 循环等待秒杀时间
while True:
    now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")
    print(now)
    if now > times:
        # 点击结算按钮
        driver.find_element(By.XPATH, '//*[@id="J_Go"]/span').click()
        # 语音提示
        # speaker.Speak("秒杀开始时间到了,请注意操作")
        break

wait = WebDriverWait(driver, 20)
element = wait.until(ec.presence_of_element_located(
    (By.CLASS_NAME, "go-btn")))
element.click()
speaker.Speak(f"主人,结算提交成功,我已帮你抢到商品啦,请即使支付订单")

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LucianaiB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值