最近开始学习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的版本,都是脚本语言嘛,大致差不多吧。
传送门:Python版本的秒杀脚本