python实现淘宝秒杀脚本

  1. 确认需要的工具及库

  2. Chrome浏览器

  3. Python 3.x (推荐使用Anaconda环境)
  4. ChromeDrive (与你的浏览器版本对应,下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads)
  5. selenium库

  6. 编写脚本

首先需要在Python中创一个项目,并在该项目中编写python脚本。

from selenium import webdriver
import time

url = 'https://www.taobao.com/'
login_url = 'https://login.taobao.com/member/login.jhtml'
# 商品详情页面url
goods_url = 'https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.6.42b61a73nWveOF&id=570333464784&skuId=4414092223927&user_id=1146797663&cat_id=50026545&is_b=1&rn=ab5df3b7d811af64b3f3b3be95938fb5'
# 设置等待下单时间
buy_time = '2018-08-15 20:00:01'

def login():
    print('请手动输入账号密码进行登录...')
    input('确认后按回车键开始...')


def buy():
    driver = webdriver.Chrome()
    driver.get(goods_url)

    while driver.title.find('登录') >= 0:
        time.sleep(1)

    print(driver.title)

    while True:
        try:
            if time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) < buy_time: # 未到下单时间,等待1秒
                time.sleep(1)
            else:
                driver.find_element_by_link_text('立即购买').click()
                print('购买成功!!!')
                break
        except Exception as err:
            print(err)
            time.sleep(0.5)
    time.sleep(5000)
    driver.quit()


if __name__ == '__main__':
    login()
    buy()
  1. 登录淘宝账号

首先执行该程序,按照提示手动在浏览器中输入账号密码进行登录。之后程序会自动打开商品详情页面,但此时会跳转到淘宝登录页面。

程序需要等待登录成功后,即商品详情页面加载完成后。通过driver.title判断页面是否加载完成,此时程序会阻塞。

  1. 购买商品

在等待buy_time的时间,此时页面会自动刷新(可以在Network中查看请求),等待商品有货后立即下单。在实例代码中,我们设置了一个时间点buy_time,程序会在此时间点自动下单。

如果还没有到下单时间,程序会每隔1秒钟刷新一次页面以更新商品的库存状态,如果时间到了,程序会尝试通过driver.find_element_by_link_text('立即购买').click()执行购买,如果该操作执行失败,程序会暂停0.5秒后重试。如果购买成功,程序会退出。

示例1:购买一个iPhone X

例如购买一个iPhone X的代码示例:

url = 'https://www.taobao.com/'
login_url = 'https://login.taobao.com/member/login.jhtml'
goods_url = 'https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.6.42b61a73nWveOF&id=570333464784&skuId=4414092223927&user_id=1146797663&cat_id=50026545&is_b=1&rn=ab5df3b7d811af64b3f3b3be95938fb5'
buy_time = '2018-08-15 10:00:00'

def login():
    print('请手动输入账号密码进行登录...')
    input('确认后按回车键开始...')


if __name__ == '__main__':
    login()
    buy()

示例2:购买一个热销商品

另外,类似于购买一个热销商品的代码示例:

url = 'https://www.taobao.com/'
login_url = 'https://login.taobao.com/member/login.jhtml'
goods_url = 'https://item.taobao.com/item.htm?spm=a219v.13590419.0.0.24134b28lakEWt&id=521547376162'
buy_time = '2018-08-15 10:00:00'

def login():
    print('请手动输入账号密码进行登录...')
    input('确认后按回车键开始...')


if __name__ == '__main__':
    login()
    buy()

注意:这些示例代码需要在实践中进行测试并适当修改,才能够成功执行。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现淘宝秒杀脚本 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • python 多维切片之冒号和三个点的用法介绍

    下面是对“Python多维切片之冒号和三个点的用法介绍”的完整攻略。 Python多维切片之冒号和三个点的用法介绍 在Python中,我们经常会用到切片(slice)操作,它可以用来截取字符串、列表、元组等数据类型的一部分。除了常规的单维切片之外,Python还支持多维切片,其中包括使用冒号(:)和三个点(…)的切片操作。 冒号的使用 使用冒号时,切片操…

    python 2023年6月5日
    00
  • Python 栈实现的几种方式及优劣详解

    Python 栈实现的几种方式及优劣详解 什么是栈 栈(Stack),是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算,称为栈顶,另一端称为栈底。它是一种先进后出的数据结构。 栈的基本操作 push(item):添加一个新元素到栈顶 pop(): 弹出栈顶元素 peek(): 返回栈顶元素 is_empty(): 判断栈是否为空 size(…

    python 2023年5月19日
    00
  • PowerShell 指令操作集合(小结)

    PowerShell指令操作集合(小结) PowerShell是一种跨平台的任务自动化和配置管理框架,它提供了许多强大的命令和操作来方便操作系统的管理。在这篇文章中,我们将讨论一些常用的PowerShell指令操作集合,包括: 系统信息查询 磁盘空间管理 网络配置管理 文件和文件夹管理 权限管理 服务和进程管理 系统信息查询 PowerShell提供了一系列…

    python 2023年5月14日
    00
  • 无法使用pip命令安装python第三方库的原因及解决方法

    这里是关于无法使用 pip 命令安装 Python 第三方库的原因及解决方法的完整攻略。 原因 1. 网络问题 如果你的电脑无法连接到互联网,那么使用 pip 命令安装第三方库就会失败。此时你需要确认你的电脑是否能够正常连接到互联网,或者是否在使用代理 服务器。 此外,还有一些情况可能会导致网络连接不稳定,如 DNS 解析问题等。这些问题会导致你的 pip …

    python 2023年5月14日
    00
  • Python Opencv实现图片切割处理

    下面是针对”Python Opencv实现图片切割处理”的完整攻略: 前言 图片切割处理是图像处理中的重要部分,而Python Opencv作为一种流行的图像处理工具,擅长这部分的实现。本攻略会详细讲解如何使用Python Opencv实现图片切割处理。 环境准备 在开始之前,需要安装并配置好Python和Opencv。推荐使用Python 3.x版本,并安…

    python 2023年5月18日
    00
  • 盈透证券 Python 数据请求

    【问题标题】:Interactive Brokers Python Data Request盈透证券 Python 数据请求 【发布时间】:2023-04-04 17:33:01 【问题描述】: 我正在运行以下代码,但我获取快照价格的请求在 python 控制台上没有返回任何内容。我需要打印方法吗?抱歉,我不熟悉愚蠢的 oop,只做程序和功能。 谢谢 fro…

    Python开发 2023年4月6日
    00
  • Python中使用__new__实现单例模式并解析

    在Python中,可以使用__new__方法实现单例模式。__new__方法是在对象创建之前调用的方法,可以用于控制对象的创建过程。以下是一个使用__new__方法实现单例模式的示例: class Singleton: _instance = None def __new__(cls): if cls._instance is None: cls._inst…

    python 2023年5月15日
    00
  • Python3.x版本中新的字符串格式化方法

    Python3.x版本中引入了一种新的字符串格式化方法:格式化字符串字面值(Formatted string literals),即在字符串前加上”f”或”F”的字符串。这种方法可以使字符串格式化更加方便和简洁。 格式化字符串字面值的基本语法如下: f"{expression}" 其中,大括号”{ }”中的部分会被替换成表达式的值。下面是…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部