JAVA+Selenium2—淘宝秒杀购物车脚本

JAVA+Selenium2—淘宝秒杀购物车脚本JAVA+Selenium—淘宝清空购物车脚本前言准备代码注前言对于自己近期学习的归纳与应用,只是个简单的线性脚本。之前学习了selenium,发现csdn上大都是python+selenium,故参考后改成java+selenium,另外把读取本地时间改成了读取网站时间,更为精确。准备JAVA环境,Selenium-2.46.0jar包,火狐浏览器固定版本(自用的可能是32.0)j…

大家好,又见面了,我是你们的朋友全栈君。

JAVA+Selenium2—淘宝秒杀购物车脚本

前言

对于自己近期学习的归纳与应用,只是个简单的线性脚本。
之前学习了selenium,发现csdn上大都是python+selenium,故参考后改成java+selenium,另外把读取本地时间改成了读取网站时间,更为精确。

准备

JAVA环境,Selenium-2.46.0 jar包,火狐浏览器固定版本(自用的可能是32.0)
jar包与火狐浏览器安装包 链接 ,提取码: ybsf

代码

package com.Test;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.WebDriver.Window;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Runner { 
   
	public static void main(String[] args) { 
   
		String taoBao = "https://www.taobao.com";
		WebDriver webDriver = new FirefoxDriver();
		Navigation navigation = webDriver.navigate();
		navigation.to(taoBao);
		Window window = webDriver.manage().window();
		window.maximize();
		try { 
   
			Thread.sleep(1000);
			webDriver.findElement(By.linkText("亲,请登录")).click();
			Thread.sleep(1000);
			webDriver.findElement(By.linkText("密码登录")).click();
			Thread.sleep(1000);
			webDriver.findElement(By.className("weibo-login")).click();
			Thread.sleep(1000);
			webDriver.findElement(By.name("username")).sendKeys("********");//****你的账号
			Thread.sleep(1000);
			webDriver.findElement(By.name("password")).sendKeys("********");//****你的密码
			Thread.sleep(1000);
			webDriver.findElement(By.linkText("登录")).click();
			Thread.sleep(15000);
			navigation.to("https://cart.taobao.com/cart.htm");
			Thread.sleep(1000);
			webDriver.findElement(By.id("J_SelectAll1")).click();
			Thread.sleep(3000);
			while(true) { 
   
				URL url = new URL(taoBao);// 取得资源对象
	            URLConnection uc = url.openConnection();// 生成连接对象
	            uc.connect();// 发出连接
	            long ld = uc.getDate();// 读取网站日期时间
	            Date dateNow = new Date(ld);// 转换为标准时间对象
	    
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss");
				String buyTime = "2020/01/01-00:00:00";
				Date dateNeed = sdf.parse(buyTime);
				if(dateNeed.equals(dateNow)||dateNeed.before(dateNow)) { 
   
					webDriver.findElement(By.linkText("结 算")).click();
					System.out.println(sdf.format(dateNow));
					
					webDriver.findElement(By.linkText("提交订单")).click();
					
					break;
				}
			}
			} catch (InterruptedException e) { 
   
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (ParseException e) { 
   
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (MalformedURLException e) { 
   
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) { 
   
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}	
}

  1. 因为淘宝登录需要滑动验证码,故这里使用微博账号绑定登录淘宝账号绕过验证。
  2. 关于如何使用CMD运行使用了第三方jar包的java程序:
    将第三方jar包放在自创的bin目录中(D:\TbFlash\lib)
    cd D:\TbFlash\src\com\Test
    javac -classpath .;D:\TbFlash\lib* Runner.java
    java -classpath .;D:\TbFlash\lib* Runner.java
  3. 使用CMD运行jar:
    java -jar *.jar
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140908.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mybatis @MapperScan 解析

    mybatis @MapperScan 解析MapperScan注解会引入MapperScannerRegistrar,MapperScannerRegistrar实现了ImportBeanDefinitionRegistrar,可以向beanFactory中注册BeanDefinition,具体注入的过程是通过ClassPathMapperScanner实现的。publicvoidregisterBeanDefi…

    2022年5月2日
    63
  • Yarn中ResourceManager的RPC协议[通俗易懂]

    Yarn中ResourceManager的RPC协议

    2022年2月6日
    54
  • linux下安装svn客户端_服务器安装步骤

    linux下安装svn客户端_服务器安装步骤1、简介Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说.首先来下载和搭建SVN服务器。yuminstallsubversion2、配置2.1、创建仓库我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个下面,创建成功后在svn下面多了几个文件夹。#cd/home#mkdirsvn#svnadmincreate/home/svn#lssvnconfdb.

    2022年8月31日
    10
  • BeanCopier_protobuf的简单使用

    BeanCopier_protobuf的简单使用BeanCopier的简单使用cglib包下的一个类.简单栗子//创建实例.BeanCopiercopier=BeanCopier.create(source.getClass(),target.getClass(),false);//Copy操作copier.copy(person1,person2,null);注意到:第三个参数userConve…

    2025年9月14日
    11
  • system在c语言中_c语言system返回值

    system在c语言中_c语言system返回值需包含头文件:C标准库-<stdlib.h>文章目录描述声明参数返回值实例1实例2:列出windows机上当前目录下所有的文件和目录描述C库函数intsystem(constchar*command)把command指定的命令名称或程序名称传给要被命令处理器执行的主机环境,并在命令完成后返回。声明下面是system()函数的声明。intsystem(constchar*command)参数command–包含被请求变量名称的C字符串。

    2025年11月25日
    4
  • 理解的英文_iaas saas paas daas区别

    理解的英文_iaas saas paas daas区别云服务只是一个统称,可以分成三大类。IaaS:基础设施服务,Infrastructure-as-a-servicePaaS:平台服务,Platform-as-a-serviceSaaS:软件服务

    2022年8月6日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号