手把手教你编写Python抢购脚本

news2024/11/18 13:54:46

想买苹果手机,但总是抢不到,所以想试着能不能写个脚本代码。

第一步:把想要抢购的商品加进购物车,注意:脚本是对购物车内全部商品进行下单操作,所以不够买的商品最好先从购物车内删除。
第二步:写好Python脚本,在抢购之前运行,并设置好抢购时间。

Python脚本实现

  • 安装Python。我安装的是anaconda
  • 安装webdriver扩展。它是Selenium模块的一部分。Selenium是一个用于Web应用程序测试的工具,用于测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。所以其实就是安装Selenium:Win+R,输入cmd,在命令行中输入pipshow selenium
  • 安装chrome浏览器(因为我用的是谷歌)
  • 安装chromedriver。它是chrome的插件,是为了webDriver能通过操作chromedriver来控制chrome浏览器自动操作,如打开网页,点击按钮等操作。

下载地址:

http://chromedriver.storage.googleapis.com/index.html或https://npm.taobao.org/mirrors/chromedriver/

**注意:下载时要根据电脑系统和chrome浏览器版本来选择对应的chromedriver版本。**可以通过浏览器右上角的三点→帮助→关于Google Chrome来查看自己的chrome版本。
在这里插入图片描述
下载chromedriver安装包后,进行解压,放在chrome安装的同级目录下,同时在环境变量PATH中添加路径。
在这里插入图片描述
然后用以下代码检验是否安装成功:

然鹅,此时我遇到了错误,如下

于是,我把chromedriver.exe放到了我python脚本的文件夹后,就完美解决问题了!

【补充】
我知道自己为什么出现上面那个错误了,因为路径没输入!
在下图所示红框处输入自己的下载的chromedriver安装路径即可成功运行。
在这里插入图片描述
完整的Python脚本代码如下:

```python
# coding=utf-8
import os
from selenium import webdriver
import datetime
import time
from os import path

#此处chromedriver改为自己下载解压的chromedriver的路径
driver = webdriver.Chrome("E:/JupyterNotebookSavePath/chromedriver")
#driver.maximize_window()

def login():
    #打开淘宝首页,扫码登陆淘宝
    driver.get("https://www.taobao.com")
    time.sleep(3)
    if driver.find_element_by_link_text("亲,请登录"):
        driver.find_element_by_link_text("亲,请登录").click()
        print("请在15秒内完成扫码")
        time.sleep(15)
        #打开购物车列表首页
        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()
    now = datetime.datetime.now()
    print("login success:", now.strftime("%Y-%m-%d %H:%M:%S"))

def buy(times):
    while True:
        #记录当前时间,使用datatime内置模块
        now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        print(times)
        print(now)
        # 对比时间,时间到的话就点击结算
        if now == times:
            try:
                if driver.find_element_by_id("J_Go"):
                    driver.find_element_by_id("J_Go").click()
                    driver.find_element_by_link_text('提交订单').click()
                    print('抢购成功,请尽快付款')
            except:
                 print('请再次尝试提交订单')
        print(now)
        time.sleep(0.1)

if __name__ == "__main__":
    times = input("请输入抢购时间(例如格式:2021-02-01 00:00:00):")
    login()
    buy(times)

另外怕大家不会使用,直接给大家准备了写好的,直接下载打开即可使用!
源码放在百度云盘上了需要可以微信扫描下方CSDN官方认证二维码免费领取

学习资源推荐

上面都是一些软技能的干货分享,希望可以帮到正在入门学习 Python 的小伙伴们,下面是整理好的一些资料分享。
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

网络安全这玩意儿真不建议一般人学...

前言 作为一名5年网安工程师老菜鸟来说,我实在想不通,开发岗位那么多,为什么要来学网安? 在这里怕是要给准备入坑的同学泼盆冷水了,网络安全这东西真不建议一般人学... 基础确实很简单,是个人稍微认点真都能懂&…

20221205英语学习

今日新词: abort v.中止, 流产, 放弃, 堕胎 motor adj.有引擎的, 由发动机推动的, 机动车的, 汽车的 flag n.旗, 标志旗, 菖蒲, 旗帜(指某国家或组织及其信仰和价值观) August n.八月 division n.(主要)部门&…

数据可视化之疫情可视化

一 前言 新型冠状病毒肺炎(COVID-19,简称“新冠肺炎”)疫情肆虐全球多个国家,2020年3月11日,世界卫生组织 (WHO) 正式宣布将新冠肺炎列为全球性大流行病。 在全球抗击新型冠状病毒疫情的过程中,产生了前所…

网络管理——直接网络管理规范

逻辑环 逻辑环机制 每个逻辑节点都有一个逻辑地址,且每个节点有一个后继节点,从而建立一个逻辑环。后继节点定义为:按照NM 地址段节点地址大小排列,小地址节点→大地址节点依次传递网络管理报文;最大地址节点→最小地…

【IoT】产品经理:如何了解行业需求、痛点和发展机会?

需求、痛点、发展机会是跟你所处行业的密切相关的,只有融入这个行业,才能更好地理解需求和痛点。 1、避免一叶障目 你需要做到避免只见树木不见森林,避免自己局限于细节而忽视了全局。 我们对部分的理解再深刻,也无法得到对整体的…

年薪90万男子嫌无聊起诉公司?用任务软件飞项充实工作吧!

每天正常上下班,毫无工作压力,这样的神仙工作是不是你期望的?但最近有个奇葩的新闻引起了网友的热议。就是这样的工作,但“身在福中不知福”的男子米尔斯,却将公司给起诉了,理由是“太无聊”。据报道&#…

SpringCloud框架(二):整合Eureka作为注册中心、Feign进行远程调用、Ribbon实现负载均衡,底层源码解读

环境搭建 生产和消费 RestTemplate,底层源码解读SpringCloud环境搭建:生产和消费 RestTemplate整合Eureka和Feign引入Eureka服务注解中心替代RestTemplate?通过openFegin进行调用当一个请求多次落到一个服务上,其他服务如何平衡这…

【Python项目】毕业设计必备——Python实现一个GUI版本的学生信息管理系统 | 附源码

前言 halo,包子们上午好 很多学计算机的小伙伴应该都知道,毕业设计是一个头疼的东西 今天的话小编这边给大家准备好了一个Python版本的毕业设计课题——学生管理系统 说实话操作起来还是有那么一点点的难度的,但是大家不用担心 作为一个宠粉…

SSM框架学习记录-Spring_day02

1.IOC/DI配置管理第三方bean 之前都是基于自己写的类,如果有需求去管理第三方Jar包中的类,该如何管理? 案例:数据源对象管理 使用Spring的IOC容器来管理Druid连接池对象 思路分析 要使用第三方的技术,需要在pom.xml添加依赖 在配置文件中将…

CloudKit教程之如何从 CloudKit 获取图像资源到 SwiftUI 应用程序

最近,我研究了 CloudKit API 文档,并尝试将数据库和资产集成到我的应用程序中。这是我的一些发现,希望对您有所帮助…… 想要从 iCloud 公共数据库获取图像资产到他们的 SwiftUI 应用程序的 Apple 开发人员而写的。 将 Sign in with Apple 集成到 CloudKit 新建 Xcode 项…

CSRF漏洞利用与防御

今天继续给大家介绍渗透测试相关知识,本文主要内容是CSRF漏洞利用与防御。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设…

Spring更简单的存储和读取Bean

⭐️前言⭐️ 在上一篇文章【Spring的创建与使用】中,我们已经了解了Spring中bean对象的基本的创建和使用方法,这篇文章通过注解的方法,使得存储和读取对象更加简单。 🍉博客主页: 🍁【如风暖阳】&#x1…

[附源码]计算机毕业设计JAVA疫情背景下社区公共卫生服务系统

[附源码]计算机毕业设计JAVA疫情背景下社区公共卫生服务系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&#xff1a…

分布式事务最终一致性的方案

最终一致性的方案 知识储备 分布式系统中不可避免存在分布式事务带来的一致性问题。为了解决这个问题,需要熟悉业界相关的理论: ACID CAP BASE 2PC 3PC TCC 对于一致性的处理,分为强一致和最终一致性。强一致,对系统的吞吐…

cox回归RCS阈值效应函数cut.tab1.3发布

写在前面的话,本次只发布了cox回归RCS阈值函数,请看清楚再购买,觉得贵的可以等一等,这个函数最终会放在ggrcs包上面,免费供大家使用,急用的可以先看看。 接下来聊聊cox回归RCS阈值函数是干什么用的&#xf…

[附源码]Python计算机毕业设计SSM江西婺源旅游文化推广系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Python入门 函数 基础入门篇

一、什么是函数 函数是最基本的一种代码抽象的方式,是组织好的可重复使用的,用来实现单一或相关联功能的代码段。 函数是对做相似的事情或相似的动作进行封装,它能提高应用的模块性和代码的重复利用率。我们要封装好一个函数,首…

[附源码]计算机毕业设计设备运维平台出入库模块APPSpringboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【STM32学习(3)】STM32——简述中断的基础知识

中断一、中断的定义二、中断的作用三、中断源(中断触发的硬件)四、中断类型五、中断优先级六、中断服务函数一、中断的定义 中断,即CPU在正常执行程序的过程中,遇到外部(IO引脚中断)/内部(定时…

Maven技术

目录 传统项目管理分析(导入jar包形式) maven组成部分 maven项目构建命令 maven高级 项目的聚合与继承 maven子父工程 需求:使用maven子父工程完成登录并跳转到首页列表 创建父工程 在父工程中以module的形式创建子模块 在父工程中以…