接Python版本淘宝秒杀脚本,用nodejs再次写了一个简单的脚本,思路都是一样的。
思路
- 打开浏览器
- 打开指定的网址
- 扫码登录或者输入密码登录,这里是需要人工扫码
- 跳转到购物车页面
- 点击全选
- 点击结算
- 点击提交订单
代码
const dayjs = require("dayjs");
const { By } = require("selenium-webdriver");
const selenium = require("selenium-webdriver");
const driver = new selenium.Builder().forBrowser("chrome").build();
// 最大化浏览器
driver.manage().window().maximize();
driver.get("https://www.taobao.com");
// 类似于python中time的sleep函数
const sleep = (time) => {
return new Promise((resolve) => {
setTimeout(resolve, time * 1000);
});
};
// 登录
const login = async () => {
const loginText = driver.findElement(By.linkText("亲,请登录"));
if (loginText) loginText.click();
console.log("请在20秒内完成扫码");
await sleep(20);
driver.get("https://cart.taobao.com/cart.htm");
await sleep(3);
// 点击全选按钮
if (driver.findElement(By.id("J_SelectAll1")))
driver.findElement(By.id("J_SelectAll1")).click();
console.log("登录成功:", dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss"));
await sleep(0.4);
buy("2023-02-25 22:22:00");
};
// 秒杀
const buy = async (buyTime) => {
while (true) {
const now = dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss");
if (now === buyTime) {
if (driver.findElement({ id: "J_Go" }))
driver.findElement({ id: "J_Go" }).click();
await sleep(0.4);
submit();
break;
}
}
};
// 提交订单
const submit = async () => {
if (driver.findElement(By.linkText("提交订单")))
driver.findElement(By.linkText("提交订单")).click();
console.log("抢购时间:", dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss"));
await sleep(1000);
};
login();
结论
- 嘿嘿,没想到node也有这个自动化包,完全实现了这个功能
传送门:Python版本的秒杀脚本
本文由mdnice多平台发布