使用python实现淘宝抢购

2023-10-30

疫情当下,大部分人选择网购,但是在有限数量的网购商品时,大家就需要蹲点抢了,而蹲点也不一定比别手快,有什么方法可以实现自动蹲点抢购呢?

使用方法

1.先把想抢购的商品加入淘宝手机端的购物车

2.修改代码中抢购时间

3.运行代码

4.弹出浏览器,登录淘宝

5.使用手机扫码登录(需要在30内完成)

6.等待抢购,结束后会自动显示在手机端的代付款中

实现流程

首先你得有一个pycharm与python解释器,还有一个谷歌浏览器

接下来的步骤就简单了

前期准备

首先导入ChromeDriver 是 Chrome 驱动,是 Python 爬虫使用的 selenium 模块用来模拟打开谷歌浏览器所必须的一个文件,能模拟在谷歌浏览器上的操作。(当然,如果爬虫用的是其他浏览器,也要相应下载其他浏览器的驱动,不过谷歌浏览器因为它的无界面抓取的优势和稳定性常成为爬虫首选的浏览器)

导入步骤:

chromedriver下载地址:
http://chromedriver.storage.googleapis.com/index.html
http://npm.taobao.org/mirrors/chromedriver/

两个地址都可以下载,根据自己的chrome浏览器的版本选择下载即可

打开Google 点击右上角三个点——帮助——关于 Google Chrome——查看版本点开上面链接下载与谷歌版本一致的(或者比谷歌版本大的)

以我谷歌版本为例:我下载的是108.0.5359.71的 ,点击进去,下载chromedriver_win32.zip 解压到桌面上

 

 

 win+r 打开命令提示符 打开cmd ,并在命令提示符中输入where python(查找python解释器的位置)

复制路径(D:\Python310\)在此电脑打开找到解释器所在的文件夹

 

将我们下载的把exe文件复制到python的安装目录下: (D:\Python310\)实际以自己的安装目录

 配置环境变量:此电脑→右击属性→高级系统设置→环境变量→用户变量→Path→编辑→新建,将以下路径复制,然后不要忘记后续全部点击确定

C:\Program Files (x86)\Google\Chrome\Application\

 

 打开pycharm,输入以下代码,测试一下是否驱动成功

from selenium import webdriver

driver = webdriver.Chrome()
url = 'https://www.csdn.net/'
driver.get(url)
driver.maximize_window()

 成功就来到下一步

安装 selenium模块、time模块

win+r 打开命令提示符 打开cmd ,并在命令提示符中输入

python -m pip install selenium
安装selenium模块
pip install time
安装time模块

前期工作完成!!

代码部分展示

记得点赞加关注

接下来复制代码,代码最后一行可以修改时间(选择抢购时间) 

from selenium.webdriver.common.by import By
from selenium import webdriver
import datetime
import time

driver = webdriver.Chrome()
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()
        driver.find_element(By.XPATH, '//*[@id="login"]/div[1]/i').click()
    print("请在30秒内完成扫码")
    time.sleep(30)
    url3 = "https://cart.taobao.com/cart.htm"  # 淘宝购物车
    driver.get(url3)
    time.sleep(3)
    # 点击购物车里全选按钮
    if driver.find_element(By.ID, "J_SelectAll1"):
        driver.find_element(By.ID, "J_SelectAll1").click()
    else:
        print("找不到购买按钮,请手动点击商品")
    now = datetime.datetime.now()
    print('login success:', now.strftime('%Y-%m-%d %H:%M:%S:%f'))


def buy(buytime):
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
        # 对比时间,时间到的话就点击结算
        if now >= buytime:
            print("与预定时间1进行比较")
            while True:
                try:
                    # 点击结算按钮
                    if driver.find_element(By.XPATH, '//*[@class="submit-btn"]/span'):
                        driver.find_element(By.XPATH, '//*[@class="submit-btn"]/span').click()  # 结算
                        print("程序锁定商品,结算成功")
                        break
                except:
                    time.sleep(0.001)
            # 点击提交订单按钮
            while True:
                try:
                    # time.sleep(1)
                    if driver.find_element(By.XPATH, '//*[@id="submitOrderPC_1"]/div/a[2]'):
                        driver.execute_script('window.scrollBy(0,250)')
                        driver.find_element(By.XPATH, '//*[@id="submitOrderPC_1"]/div/a[2]').click()  # 提交订单
                        print("订单提交成功")
                        break
                except:
                    time.sleep(0.01)
            now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
            print("已经抢到商品啦,抢到的时间:" + now)
            break
        print("当前时间:" + now)
        time.sleep(0.01)


if __name__ == "__main__":
    login()
    buy("2022-12-17 10:00:00.000000") #本时间是抢购时间,可根据需求进行更改

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用python实现淘宝抢购 的相关文章

  • 在 Pandas 中按日期获取有效合约

    我在检测 pandas DataFrame 中的活动合约方面遇到了一些困难 假设每一行都是一个协商 对于每一行 我有两列 initial date 和 end date 我想知道的是按日期划分的活跃合约数量 到目前为止我做了一个非常低效的方
  • 从正在运行的 python 脚本检测优化标志是否为 -O 或 -OO

    有时我想生成一个子进程 其优化标志与启动父进程时使用的优 化标志相同 我可以使用类似的东西 optimize not debug 但这样我就可以匹配两者 O and OO flags 是否有一些 python 内部状态包含该信息 经过一番深
  • 行未从树视图复制

    该行未在树视图中复制 我在按行并复制并粘贴到未粘贴的任何地方后制作了弹出复制 The code popup tk Menu tree opportunity tearoff 0 def row copy item tree opportun
  • Paramiko - 使用私钥连接 - 不是有效的 OPENSSH 私钥/公钥文件

    我正在尝试找到解决方案 但无法理解我做错了什么 在我的 Linux 服务器上 我运行了以下命令 ssh keygen t rsa 这产生了一个id rsa and id rsa pub file 然后我将它们复制到本地并尝试运行以下代码 s
  • 带图像的简单 GUI [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图在简单的 GUI 上显示一些卡
  • 错误:permission_manager_qt.cpp(82) 不支持的权限类型:13

    我正在开发具有内置浏览器功能的 python 代码 PyQt 5 13 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets imp
  • 如果字段值在外部列表中,Django 会注释布尔值

    想象一下我有这个 Django 模型 class Letter models Model name models CharField max length 1 unique True 还有这个列表 vowels a e i o u 我想查询
  • sudo pip install python-Levenshtein 失败,错误代码 1

    我正在尝试在 Linux 上安装 python Levenshtein 库 但每当我尝试通过以下方式安装它时 sudo pip install python Levenshtein 我收到此错误 命令 usr bin python c 导入
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 无法打开 Python。错误 0xc000007b

    我最近一直在学习 Python 3 我在我的上网本 32 位 Windows 7 上创建简单的小程序没有任何问题 当我将它安装在我的上网本上时 我没有遇到任何问题 但现在我已经开始使用它了 我想将它安装在我的台式机上 并且我有一个 我的桌面
  • 创建一个类似于 Tkinter 的表

    我希望创建类似于 Tkinter 中的表格的东西 但它不一定是这样的 例如 我想创建标题 Name1 Name2 Value 并在每个标题下面有几个空白行 然后 我希望稍后用我计算的值或名称的字符串值填充这些行 因此是标签 对于 Name2
  • 为什么我用 beautifulSoup 刮的时候有桌子,但没有 pandas

    尝试抓取条目页面转换为制表符分隔格式 主要拉出序列和 UniProt 登录号 当我跑步时 url www signalpeptide de index php sess m listspdb bacteria s details id 10
  • Matplotlib Scatter - ValueError:RGBA 序列的长度应为 3 或 4

    我正在尝试为我的功能绘制图表 但不断收到此错误 ValueError RGBA sequence should have length 3 or 4 每当我只有 6 种形状时 代码就可以完美运行 但现在我将其增加到 10 种 它就不起作用了
  • Airflow Python 单元测试?

    我想为我们的 DAG 添加一些单元测试 但找不到任何单元测试 有 DAG 单元测试框架吗 有一个端到端的测试框架存在 但我猜它已经死了 https issues apache org jira browse AIRFLOW 79 https
  • 查找给定节点的最高权重边

    我在 NetworkX 中有一个有向图 边缘的权重从 0 到 1 表示它们发生的概率 网络连通性非常高 所以我想修剪每个节点的边缘 只保留最高概率的节点 我不确定如何迭代每个节点并仅保留最高权重in edges在图中 有没有一个networ
  • 为什么实现 __iter__ 的对象不被识别为可迭代的?

    假设您使用包装对象 class IterOrNotIter def init self self f open tmp toto txt def getattr self item try return self getattribute
  • Python - 如何查询定义方法的类?

    我的问题有点类似于this one https stackoverflow com questions 5520580 how do you get all classes defined in a module but not impor
  • Python组合目录中的所有csv文件并按日期时间排序

    我有 2 年的每日数据分成每月文件 我想将所有这些数据合并到一个按日期和时间排序的文件中 我正在使用的代码组合了所有文件 但不按顺序 我正在使用的代码 import pandas as pd import glob os import cs
  • 如何将列表字典写入字符串而不是 CSV 文件?

    This 堆栈溢出问题 https stackoverflow com questions 37997085 how to write a dictionary of lists to a csv file将列表字典写入 CSV 文件的答案
  • 异步和协程与任务队列

    我一直在阅读有关 python 3 中的 asyncio 模块的内容 以及更广泛地了解 python 中的协程的内容 但我不明白是什么让 asyncio 成为如此出色的工具 我的感觉是 你可以用协程做的所有事情 通过使用基于多处理模块 例如

随机推荐

  • 线索二叉树

    原文地址 blog chinaunix net uid 26548237 id 3476920 html 一 线索二叉树的原理 通过考察各种二叉链表 不管儿叉树的形态如何 空链域的个数总是多过非空链域的个数 准确的说 n各结点的二叉链表共有
  • Mac安装MySQL8碰到的问题

    Mac安装MySQL8碰到的问题 链接数据库时候报错 选择数据库或表的时候抛出异常 无限转菊花 链接数据库时候报错 报错信息大体如下 Connection failed MySQL said Authentication plugin ca
  • Windows10家庭版不支持远程桌面的解决方案

    1 下载RDP Wrapper https github com stascorp rdpwrap releases 2 解压 zip 文件 3 运行intall bat 4 打开RDPConf exe 如果全为绿色 远程桌面启用成功 可运
  • 如何导入csv与excel格式的数据到pandas库中?

    Pandas 库提供了许多方法来导入不同格式的数据 例如 CSV Excel JSON SQL 等 以下是使用 pandas 导入 CSV 和 Excel 文件的方法 导入 CSV 文件 可以使用 pandas 中的 read csv 函数
  • RDMA技术详解——RDMA的三种实现方式

    RDMA作为一种host offload host bypass技术 使低延迟 高带宽的直接的内存到内存的数据通信成为了可能 目前支持RDMA的网络协议有 1 InfiniBand IB 从一开始就支持RDMA的新一代网络协议 由于这是一种
  • Spring Boot + Vue的网上商城之springsecurity+jwt+redis实现用户权限认证实现

    Spring Boot Vue的网上商城之springsecurity jwt redis实现用户权限认证实现 在网上商城项目中 用户的安全性是非常重要的 为了实现用户权限认证和安全校验 我们可以使用Spring Security JWT和
  • 使用eclipse导出及导入jar包

    如果想在当前项目使用别的项目的类 是无法用import导入的 只能把别项目的类导出为jar包 然后再在本项目中倒入jar包 这就是自制jar包的功能 下面的操作都是在eclipse完成的 1 在欲导出的包的包名上 右键包名 Export J
  • 独自封装windows 10系统详细教程(二)

    目录 作者语录 三 调整系统设置 1 切换管理员账号 2 添加英文输入法 3 关闭windows自动更新 4 取消任务视图的历史记录 四 个性化设置 选择 1 调整视觉效果 2 windows桌面壁纸 登录壁纸 3 OEM信息 作者语录 这
  • android studio如何设置输出值的小数点_Stata结果输出系列A:esttab, xxx2docx, outreg2, asdoc 对比...

    作者 王美庭 中南民族大学经济学院 Email 2017110097 mail scuec edu cn 空间计量专题课程 1 本文目的 目前 Stata 有着众多的实证结果输出命令 连享会对于 asdoc xxx2docx 系列 outr
  • Rust语言开发基础(八)Rust的接口及其实现

    2019独角兽企业重金招聘Python工程师标准 gt gt gt trait 特征 类似于其他语言中的interface或者protocol 指定一个实际类型必须满足的功能集合 一 如何理解trait 可以从我们所了解的接口特性去推断tr
  • Mac OS X系统偏好设置某些功能点不动(灰色)的解决方法

    原文链接 http walkingtowel org 2010 02 25 accessing mac os x leopard greyed out preference panes 问题描述 将鼠标停在灰色的icon上显示 您的系统管理
  • 如何将本地的mongodb数据导出,然后上传至阿里云服务器上mongodb中呢?

    1 使用MongoDB Compass 可视化工具将本地数据库导出 Collection gt Export Collection 2 将本地导出的mongodb数据库表上传至服务器上的任意位置 我使用的是Yummy FTP Pro 我上传
  • C终端获取终端数据

    写在前边 关于C语言从键盘获取数据 常用的有scanf gets getchar fgets等等 但是scanf gets getchar等函数不会对输入的数据进行检查 会导致程序崩溃 所以一般都用fgets获取数据 fgets问题 fge
  • 【并发编程】1、简介

    并发编程 简介 1 并发的出现 1 1 引入 计算机的出现改变了我们的生活呀 但在早期的计算机计算的效率与成本非常的高 基本上只能用于军方与有钱家庭 每个人都只能将自己写好的代码放到计算机上 计算完成后才能让下一个人继续使用计算机 就相当于
  • WY37 - 操作序列 - 网易

    java实现 题目描述 小易有一个长度为n的整数序列 a 1 a n 然后考虑在一个空序列b上进行n次以下操作 1 将a i放入b序列的末尾 2 逆置b序列 小易需要你计算输出操作n次之后的b序列 输入描述 输入包括两行 第一行包括一个整数
  • 如何将eclipse的英文设置成中文?

    点击eclipse选项栏中的 help 项 选择 install new solftware 可以看见如下界面 选择 添加 出现Add Repository界面 在名称处填写 babel 位置处粘贴如下库 https download ec
  • FPGA中的AXI总线

    网上有很多介绍AXI的文章 本篇或多或少参考了一些 其中的一些内容是我自己的理解 我认为比较适合新手 希望能帮助到才接触FPGA的萌新 一 AXI简介 AXI Advanced eXtensible Interface 直译过来就是先进的可
  • NEON优化:ARM优化高频指令总结

    NEON优化 ARM优化高频指令总结 前言 读写 计算 转换 操作 参考资料 NEON优化系列文章 NEON优化1 软件性能优化 降功耗怎么搞 link NEON优化2 ARM优化高频指令总结 link NEON优化3 矩阵转置的指令优化案
  • 保姆级vmware workstation Pro17安装紫色kali linux(KALI PURPLE)

    官方文档如下 官方文档 https gitlab com kalilinux kali purple documentation wikis home 虚拟机安装 下载vmware workstation Pro17 一路下一步安装完成 h
  • 使用python实现淘宝抢购

    疫情当下 大部分人选择网购 但是在有限数量的网购商品时 大家就需要蹲点抢了 而蹲点也不一定比别手快 有什么方法可以实现自动蹲点抢购呢 使用方法 1 先把想抢购的商品加入淘宝手机端的购物车 2 修改代码中抢购时间 3 运行代码 4 弹出浏览器