Python | 淘宝秒杀脚本

829 阅读1分钟

最近开始学习Python了,浅浅一看,发现很多和JavaScript类似的东西。原来测试用selenium,似乎可以简单的秒杀脚本就能实现了?于是查了一下资料,模仿着写了一个。

思路

  • 打开浏览器
  • 打开指定的网址
  • 扫码登录或者输入密码登录,这里是需要人工扫码
  • 跳转到购物车页面
  • 点击全选
  • 点击结算
  • 点击提交订单

代码

from selenium import webdriver
from selenium.webdriver.common.by import By
import datetime
import time

# 启动火狐浏览器的驱动器
driver = webdriver.Chrome()
# 最大化浏览器
driver.maximize_window()


# 传入用户名密码,登录淘宝
def login():
    # 打开淘宝
    driver.get("https://www.taobao.com")

    # 查找文本,登录
    if driver.find_element(By.LINK_TEXT, "亲,请登录"):
        driver.find_element(By.LINK_TEXT, "亲,请登录").click()

    print("请在30秒内完成扫码")
    time.sleep(30)

    driver.get("https://cart.taobao.com/cart.htm")
    time.sleep(3)

    # 点击购物车里全选按钮
    if driver.find_element(By.ID, "J_SelectAll1"):
        driver.find_element(By.ID, "J_SelectAll1").click()
    time.sleep(3)
    now = datetime.datetime.now()
    print('登录成功:', now.strftime('%Y-%m-%d %H:%M:%S'))


def buy(buytime):
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        if now == buytime:
            try:
                # 点击结算按钮
                if driver.find_element(By.ID, "J_Go"):
                    driver.find_element(By.ID, "J_Go").click()
                    print("结算成功")
                    submit()
            except:
                pass
        print(now)
        time.sleep(0.01)
        break


def submit():
    while True:
        try:
            if driver.find_element(By.LINK_TEXT, '提交订单'):
                driver.find_element(By.LINK_TEXT, '提交订单').click()
                now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
                print("抢购成功时间:%s" % now1)
                break
        except:
            print("再次尝试提交订单")
            time.sleep(0.01)


if __name__ == "__main__":
    # 登录
    login()
    # 设置抢购时间
    buy('2023-02-25 20:54:00')

结论

  • 一直到提交订单这里,商品已经锁定了,就直接人工输入密码即可购买。这玩意还是可以的嘛。
  • 于是又想到了,能不能在写一个nodejs的版本,都是脚本语言嘛,大致差不多吧。

传送门:nodejs版本的秒杀脚本

本文由mdnice多平台发布