Use Java para realizar la automatización de Taobao seckill basada en selenio

prefacio

Sin querer, encontré en el foro una pequeña demo de Taobao Spike basada en Python, me pareció muy interesante, así que la escribí en Python.

# 淘宝清空购物车装置
import time

# 新版的selenium和老版的有区别,坑死我了
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

ShoppingTime = "19:00"

# 先登录
driver.get("https://login.taobao.com/member/login.jhtml?f=top&redirectURL=http%3A%2F%2Fwww.taobao.com%2F/")
time.sleep(15)

# 进入购物车
driver.get("https://cart.taobao.com/cart.htm?from=mini&ad_id=&am_id=&cm_id=&pm_id=1501036000a02c5c3739")

time.sleep(2)
# 选中全选
all = driver.find_element(By.XPATH,'/html/body/div[1]/div[3]/div/div/div[2]/div[1]/div/div['
                              '1]/div/div/label')
if all :
    all.click()

time.sleep(1)
buy = driver.find_element(By.XPATH,'/html/body/div[1]/div[3]/div/div/div[4]/div[2]/div[3]/div[5]/a')

Más tarde, cuando escribí el juicio de tiempo, descubrí que había que rotar el formato de tiempo. Realmente no estaba familiarizado con Python. Pensé que openqa parecía tener selenio, así que intenté escribirlo en Java. Después de una búsqueda simple, no hubo mucha gente que escribiera esto en Java, haga un escándalo por su cuenta, pero cuando se trata de reptiles, se recomienda usar Python como lenguaje principal para escribir, y hay muchos tutoriales en la biblioteca, así que evite los desvíos. .

El primer paso es instalar ChromeDriver

Todos usan Chrome por defecto, dirección de descarga:

https://sites.google.com/a/chromium.org/chromedriver/home

Debido a que estoy en un entorno Mac, después de descargar Chromedriver, solo cópielo directamente en /usr/local/bin. Al
inserte la descripción de la imagen aquí
copiar, preste atención a la necesidad de privilegios de administrador. Solo presione una huella digital
y se puede colocar en otras ubicaciones. escribiendo Java, use la configuración del código con solo un clic

        System.setProperty("webdriver.chrome.driver", "/Users/beamstark/Desktop/chromedriver");

El segundo paso es guiar el paquete.

Por defecto, todos usan Maven

  <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.14.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>27.0-jre</version>
        </dependency>

prueba del tercer paso

Todavía es fácil de usar Java, solo escriba una demostración y pruébelo

package com;

import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author BeamStark
 * @date 2022-10-08-08:58
 */
public class TEST {
    
    
    public static void main(String[] args) {
    
    
        ChromeDriver chromeDriver = new ChromeDriver();
        chromeDriver.get("https://www.baidu.com");
        chromeDriver.findElementById("kw").sendKeys("啦啦啦");
        chromeDriver.findElementById("su").click();
    }
}

Haga clic para ejecutar
inserte la descripción de la imagen aquí
bingo ~
pero en este momento la consola informará un error (inofensivo)
inserte la descripción de la imagen aquí
que parece no ser seguro, solo se puede ejecutar localmente y los permisos de la mac nunca se han entendido :(
inserte la descripción de la imagen aquí

El cuarto paso es usar el código para ayudarnos a comprar cosas.

package com;

import lombok.extern.slf4j.Slf4j;
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 用Java实现淘宝秒杀自动化
 * @author BeamStark
 * @date 2022-10-08-08:58
 */
@Slf4j
public class WhereIsMyMoney {
    
    
    private static String ShoppingTime = "2022-10-09 04:02:00";

    public static void main(String[] args) throws InterruptedException {
    
    
        log.info("开始时间:" + LocalDateTime.now());
//        初始化驱动
        ChromeDriver chromeDriver = new ChromeDriver();
//        初始化等待时间
        WebDriverWait wait15s = new WebDriverWait(chromeDriver,15000);
        WebDriverWait wait1s = new WebDriverWait(chromeDriver,1000);
//        先登录
        chromeDriver.get("https://login.taobao.com/member/login" +
                ".jhtml?f=top&redirectURL=http%3A%2F%2Fwww.taobao.com%2F/");
        chromeDriver.findElementByXPath("/html/body/div/div[2]/div[3]/div/div/div/div[1]/i").click();
        log.info("等待登录");
//        进入购物车
        wait15s.until(ExpectedConditions.presenceOfElementLocated(By.xpath("/html/body/div[1]/div[1" +
                "]/div/ul[2]/li[3]/div[1]/a/span[2]"))).click();
//        选中购物车的第一个
        wait1s.until(ExpectedConditions.presenceOfElementLocated(By.xpath("/html/body/div[1]/div[3]/div/div/div[2]/div[2]/div[1" +
                "]/div/div[1]/div/div/label"))).click();
        log.info("选中,等待下单");
        Thread.sleep(500);
//        等待下单
        while (true) {
    
    
            if (LocalDateTime.now().isAfter(LocalDateTime.parse(ShoppingTime,
                    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))) {
    
    
//              结算!
                chromeDriver.findElementByClassName("submit-btn").click();
                log.info("结算");
//              锁单
                wait1s.until(ExpectedConditions.presenceOfElementLocated(By.xpath("/html/body/div[1" +
                        "]/div[3]/div/div[1]/div[1]/div/div[9]/div/div/a[2]"))).click();
                log.info("锁单");
                System.out.println("下单成功,去支付吧! 完成时间:" + LocalDateTime.now());
                break;
            }
        }
//      5秒后关闭
        Thread.sleep(5000);
        chromeDriver.quit();
    }
}

inserte la descripción de la imagen aquí
Tres pruebas consecutivas pasaron
el tiempo de prueba promedio de aproximadamente 0,8 s (relacionado con la velocidad de la red y la velocidad de respuesta de la página, según el kernel de Chrome, no se han probado otros kernels de navegador), de todos modos, es mucho más rápido que el manual y no tiene para preocuparte por eso Jugar juegos y jugar juegos debería ver dramas, simplemente cuelgue ~

escrito en la espalda

Gracias a todos por venir aquí :>

Este programa no establece un código de pago para usted , solo bloqueará el pedido para usted (dejándolo con espacio para arrepentirse), gaste razonablemente
~ lávese y duerma:)

Artículo de referencia: https://blog.csdn.net/chenjxj123/article/details/121802904

Supongo que te gusta

Origin blog.csdn.net/qq_42668194/article/details/127219312
Recomendado
Clasificación