python脚本抢各大平台大额优惠卷

news2024/11/18 19:37:55

文章目录

  • python脚本抢各大平台大额优惠卷
    • 写在前面
    • 准备阶段
      • 一、所需工具
      • 二、ChromeDriver下载教程
    • 三、Seleuinm安装
      • 1、打开cmd,输入如下命令
    • 开始抢券
      • 淘宝脚本
      • 京东抢购脚本

python脚本抢各大平台大额优惠卷

在这里插入图片描述

写在前面

当电商平台上演盛大的购物狂欢时,如双十一、双十二,我们常常面临着选择困难症:琳琅满目的商品使我们不知所措,而一旦选定了心仪的商品,看到价格后却可能望而却步。面对这种情况,很多人渴望能够享受到各种优惠,比如大额满减和优惠券,然而通常情况下,这些优惠券抢购的竞争激烈,一般人难以抢到。

不过,别担心!今天我将分享如何利用Python实现零成本抢购优惠券,帮助你在电商狂潮中脱颖而出。通过这个方法,你将有机会在购物过程中轻松获取各类优惠,让你的购物体验更加愉快和经济实惠。

在这个过程中,我们将利用Python编写脚本,通过自动化程序模拟用户的操作,实现快速、高效地抢购优惠券的目标。这不仅能够提高抢购的成功率,还能够让你更加轻松地享受到电商平台提供的各种优惠活动。下面就请期待我的表演吧!!!

在这里插入图片描述

准备阶段

一、所需工具

  1. Python版本:3.7.4
  2. Chrome浏览器版本:下载地址
  3. ChromeDriver下载:下载地址
  4. 注意:Chrome浏览器版本和ChromeDriver版本要保持一致,案例使用均为120.0.6099.129版本
    在这里插入图片描述

二、ChromeDriver下载教程

  1. 浏览器访问:ChromeDriver下载:下载地址

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 下载与chrom浏览器对应版本的ChromeDriver

在这里插入图片描述

  1. 将下载好的chromedriver.exe文件放置到chrome浏览器所在目录

在这里插入图片描述

  1. 我的电脑→属性→高级系统设置→环境变量→系统变量→Path→编辑→新建,将复制的目录粘贴确定即可,注意:要一路确定返回。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、Seleuinm安装

学习【Seleuinm】

Selenium是一个开源、免费、简单、灵活,对Web浏览器支持良好的自动化测试工具,在UI自动化、爬虫等场景下是十分实用的,能够熟练掌握并使用Selenium工具可以大大的提高效率。

Selenium简介
Selenium支持多平台、多浏览器、多语言去实现自动化测试,是一个开源和可移植的Web测试框架,支持并行测试执行,从而减少了时间并提高了测试效率。利用它,我们可以编写相关的自动化程序,让程序完全像人一样在浏览器里面操作Web界面,比如模拟鼠标点击、模拟键盘输入等等。不但能够操作Web界面,还能从Web中获取信息,并且相对来说,使用Selenium来获取信息更加简单,它的基本原理是我们编写自动化程序之后利用浏览器驱动直接对浏览器进行操作,只要我们用户能在浏览器上获得的信息使用Selenium都可以获得。

1、打开cmd,输入如下命令

pip install selenium

如果你的pip不管用,就去把python添加到环境变量,如果还不管用,就去看看你的pip怎么回事,或者试试pip3 install selenium
我之前安装过,所以就显示已安装,我这里是安装过,更新了一下

在这里插入图片描述

安装完以后,在你的python安装路径下的lib目录下就能看到

在这里插入图片描述

可以使用如下命令查看版本

pip show selenium

在这里插入图片描述

开始抢券

淘宝脚本

下面附上淘宝和京东平台抢券脚本,大家只需复制脚本到python编译器中运行即可

from selenium import webdriver
import datetime
import time

def login(url, login_wait_time=20):
    # 打开淘宝首页,并进行登录
    driver.get("https://www.taobao.com")
    time.sleep(3)

    # 查找登录链接并点击
    try:
        login_link = driver.find_element_by_link_text("亲,请登录")
        login_link.click()
        print("请在{}秒内完成登录".format(login_wait_time))
        time.sleep(login_wait_time)
        driver.get(url)
    except Exception as e:
        print(f"登录失败:{e}")

    time.sleep(3)
    now = datetime.datetime.now()
    print('登录成功:', now.strftime('%Y-%m-%d %H:%M:%S'))

def buy(buy_time):
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')

        # 对比时间,时间到的话就点击结算
        if now >= buy_time:
            try:
                # 查找立即抢购按钮并点击
                buy_button = driver.find_element_by_id("J_LinkBuy")
                print("速度点击!!!")
                buy_button.click()
                time.sleep(0.09)
                
                # 等待提交订单按钮出现,然后点击
                while now >= buy_time:
                    try:
                        print("赶紧买!!!")
                        go_button = driver.find_element_by_class_name('go-btn')
                        go_button.click()
                    except:
                        time.sleep(0.02)
            except Exception as e:
                print(f"抢购失败:{e}")
                time.sleep(0.08)

        print(now)
        time.sleep(0.05)

# 主函数
if __name__ == "__main__":
    # 用户输入抢购时间和商品地址
    times = input("请输入抢购时间:时间格式:2023-12-26 19:45:00.000000 ")
    url = input("请输入抢购地址: ")

    # 启动 Chrome 浏览器
    driver = webdriver.Chrome()

    # 执行登录和抢购
    login(url)
    buy(times)


京东抢购脚本

from selenium import webdriver
import datetime
import time

def login():
    # 打开淘宝登录页,并进行扫码登录
    browser.get("https://www.jd.com")
    time.sleep(3)
    if browser.find_element_by_link_text("你好,请登录"):
        browser.find_element_by_link_text("你好,请登录").click()
        print("请在30秒内完成扫码登录")
        time.sleep(30)
        browser.get("https://cart.jd.com")
    time.sleep(3)
    now = datetime.datetime.now()
    print('登录成功:', now.strftime('%Y-%m-%d %H:%M:%S'))
    time.sleep(5)

def buy(target_time, choose):
    # 点击购物车里全选按钮
    if choose == 2:
        print("请手动勾选需要购买的商品")
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
        # 对比时间,时间到的话就点击结算
        if now > target_time:
            if choose == 1:
                while True:
                    try:
                        if browser.find_element_by_id("J_SelectAll2"):
                            browser.find_element_by_id("J_SelectAll2").click()
                            break
                    except:
                        print("找不到购买按钮,请手动勾选")
            # 点击结算按钮
            while True:
                try:
                    if browser.find_element_by_link_text("去结算"):
                        browser.find_element_by_link_text("去结算").click()
                        print("结算成功")
                        break
                except:
                    pass

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

# 抢购主函数
if __name__ == "__main__":
    target_time = input("请输入抢购时间,格式如(2023-12-26 11:20:00.000000): ")
    browser = webdriver.Chrome()
    browser.maximize_window()
    login()
    choose = int(input("到时间自动勾选购物车请输入“1”,否则输入“2”: "))
    buy(target_time, choose)

参考文章:https://blog.csdn.net/white_idiot/article/details/78385441
https://blog.csdn.net/weixin_45020214/article/details/123938592

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1338337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MongoDB ReplicaSet 部署

文章目录 前言1. 环境准备2. 生成密钥3. 配置参数4. 创建 ReplicaSet5. 副本集维护5.1 新增成员5.2 移除节点5.4 主节点降级5.5 阻止选举5.6 允许副本节点读5.7 延迟观测 6. 连接副本集 后记 前言 本篇文章介绍 MongoDB ReplicaSet 如何搭建,及常用的维护方法。 1…

VScode跑通Remix.js官方的contact程序开发过程

目录 1 引言 2 安装并跑起来 3 设置根路由 4 用links来添加风格资源 ​5 联系人路由的UI 6 添加联系人的UI组件 7 嵌套路由和出口 8 类型推理 9 Loader里的URL参数 10 验证参数并抛出响应 书接上回,我们已经跑通了remix的quick start项目,接下…

【JVM】虚拟机的组成+字节码文件组成+类的生命周期

什么是JVM? JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。 JVM的功能 1.解释和运行:对字节码文件中的指令实时的解释成机器码让计算机执行。 2.内存管理:自动为对象、方法等分配内存,自动…

JAVA8项目升级JDK17指南

JAVA8项目升级JDK17指南 JAVA8项目升级JDK17指南一、模块化对反射的影响二、删除的内置类 JAVA8项目升级JDK17指南 随着SpringBoot2.7的发布,支持jdk8~jdk21。Springboot3.X发布,最低需要jdk17。升级jdk17是大势所趋。 参考1:重磅&#xff…

K8S 外部访问配置、 Ingress、NodePort

将K8S部署应用提供给外部访问一般有三种方式: NodePort 暴露端口到节点,提供了集群外部访问的入口LoadBalancer 需要负载均衡器(通常都需要云服务商提供,裸机可以安装 METALLB 测试)Ingress 统一管理 svc的外部访问&am…

Kruskal(克鲁斯卡尔)算法总结

知识概览 克鲁斯卡尔算法适用于稀疏图求最小生成树&#xff0c;时间复杂度为O(mlogm)。 例题展示 题目链接 Kruskal算法求最小生成树 859. Kruskal算法求最小生成树 - AcWing题库https://www.acwing.com/problem/content/861/ 代码 #include <iostream> #include &l…

【Git-IDEA】在 IDEA 中使用 Git(clone、pull、push、merge、建立本地分支与远程分支的连接)

【Git-IDEA】在 IDEA 中使用 Git&#xff08;clone、pull、push、merge、建立本地分支与远程分支的连接&#xff09; 1&#xff09;Gitee2&#xff09;配置 Git3&#xff09;初始化本地仓库4&#xff09;连接远程仓库5&#xff09;clone5.1.方式一5.2.方式二 6&#xff09;分支…

el-date-picker周选择器获取选择的日期范围

<el-date-pickerv-model"formData.date"type"week"format"yyyy 第 WW 周"placeholder"选择周"change"weekChange"> </el-date-picker>// 方法一&#xff1a;weekChange(val) {let startTime new Date(val.getT…

向华为学习:IPD运作-PDP产品开发流程-验证和发布阶段的关键活动

前几天华研荟为您分享了IPD体系中产品开发流程&#xff08;PDP流程&#xff0c;很多时候也直接称为IPD流程&#xff09;前三个阶段&#xff1a;概念、计划和开发阶段的主要内容和关键活动。 今天我们继续来介绍PDP流程的后面两个&#xff1a;验证、发布阶段的主要内容和关键活动…

处理及调度与死锁

处理及调度与死锁 一、前言 前面介绍了进程与线程的相关概念&#xff0c;现在继续学习处理机调度&#xff0c;处理机是系统最重要的资源&#xff0c;提高处理机的利用率和改善系统性能&#xff0c;在很大程度上取决于处理机调度性能的好坏&#xff0c;下面来介绍处理的调度以…

大一C语言查缺补漏 12.24

遗留问题&#xff1a; 6-1 1 在C语言中&#xff0c;如果要保留小数的话&#xff0c;一定要除以2.0&#xff0c;而不是2。 设整型变量m,n,a,b的值均为1&#xff0c;执行表达式&#xff08;m a>b&#xff09;||(n a<b)后&#xff0c;表达式的值以及变量m和n的值是&#…

iPhone恢复出厂设置照片还在吗?分享3个恢复方法!

随着使用时间的增长&#xff0c;手机可能会出现卡顿、运行缓慢等情况。此时&#xff0c;将手机恢复出厂设置可以清除缓存和一些不必要的文件&#xff0c;从而提高设备的运行速度。 但是&#xff0c;每当涉及恢复出厂设置的问题时&#xff0c;许多小伙伴都会关心一个问题&#…

Centos7:Jenkins+gitlab+node项目启动(1)

安装Jenkins 虚拟机配置 需要的软件 https://download.csdn.net/download/myy2012/88668255 解压到目录 用xftp 上传 开始安装jdk rmp -ivh jdk-8u181-linux-x64.rpm 开始安装jenkins rmp -ivh jenkins-2.99-1.1.noarch.rpm 修改用户与端口(端口按需修改) vim /etc/sy…

mysql中按字段1去重,按字段2降序排序

数据举例 sql语句 按字段field4降序排序&#xff0c;按字段field1去重 SELECT tt1.name2,tt1.field1,tt1.field2,tt1.field4 from ( select tt2.name2,tt2.field1,tt2.field2,tt2.field4 from t2 tt2 ORDER BY tt2.field4 DESC ) tt1 GROUP BY tt1.field1执行结果

stm32学习笔记:TIM-定时中断和外部时钟

定时器四部分讲解内容&#xff0c;本文是第一部分 ​​​​​TIM简介 基本定时器 时基单元&#xff1a;预分频器、计数器、自动重装载寄存器 预分频器之前&#xff0c;连接的就是基准计数时钟的输入&#xff0c;由于基本定时器只能选择内部时钟&#xff0c;所以可以认为这根…

【hcie-cloud】【12】华为云Stack故障处理【故障处理通用处理原则、常见华为云Stack故障处理(计算域故障场景)】【上】

文章目录 前言故障处理通用处理原则故障处理流程故障信息收集及故障范围、类型识别ManageOne运维面收集告警信息AutoOps工具故障场景信息收集AutoOps工具自动化采集HCS信息 (1)AutoOps工具自动化采集HCS信息 (2)故障初期定位方向故障恢复例行维护讨论: 哪一环比较重要&#xff…

ssm基于jsp的网络书店系统论文

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于网络书店商城当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了网络书店商城&#xff0c;它彻底改变了过去传统的…

Linux的账号及权限管理

一.管理用户账号 1.1 用户账户的分类 1.1.1 用户账号的分类 超级用户&#xff1a;&#xff08;拥有至高无上的权利&#xff09; root用户是Linux操作系统中默认的超级用户账号&#xff0c;对本主机拥有最高的权限&#xff0c;系统中超级用户是唯一的。普通用户&#xff1a; …

ChatGPT如何在地学、GIS、气象、农业、生态、环境等领域中完美应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

利用易点易动设备管理系统优化企业设备巡检流程

随着科技的发展,各种物联网IoT技术日趋成熟,各种智能设备也被广泛应用于各行各业。相比传统手写方式记录设备状态信息,利用数字化设备管理系统收集和记录设备运行数据,无论是从工作效率还是数据准确性来看,都能获得很大提升。作为一家制造企业,我们在日常设备运行与维修保养中,…