Python+Selenium+Chrome实现淘宝购物车秒杀自动结算

小石头
小石头
发布时间:2026-10-12| 2人浏览过
原创

本文介绍如何利用Python结合Selenium库与Chrome浏览器,实现淘宝购物车商品的自动登录与秒杀结算功能。内容涵盖环境配置、WebDriver驱动安装及完整代码解析,旨在帮助开发者通过自动化脚本解决抢购难题,适合初学者参考实践。

以往在淘宝店铺发售AJ球鞋时,手动抢购往往难以抵挡黄牛的速度。鉴于毕业设计期间学习了Python相关知识,笔者编写了这套抢购脚本,以圆自己拥有AJ的小小愿望。

一、所需环境

Selenium

Selenium是一款开源的自动化测试工具,其核心原理是模拟浏览器操作。它支持Java、Python、C#、PHP等主流编程语言。

Selenium常被用于爬虫场景,能够轻松获取经过JS渲染或Ajax异步请求生成的数据。然而,其缺点同样明显:相比正则表达式匹配,Selenium需加载浏览器及更多组件,执行速度较慢。因此,若对速度有极高要求,建议尽量避免使用Selenium。

在Web测试自动化领域,与单元测试和接口测试不同,Web自动化更贴近真实用户行为。它通过模拟用户的点击和文本输入操作,在登录成功后获取数据进行断言。若断言结果一致,则测试通过;反之则失败。虽然用户能直观看到操作结果,但程序只能通过判断特定的“证据”来确认行为是否生效。

二、安装

下载并安装Selenium库。

安装与浏览器对应的驱动程序WebDriver。

驱动程序版本需与本地浏览器版本严格对应。例如,若使用72版本的Chrome浏览器,则需下载ChromeDriver 2.46版本。


下载并解压后,配置环境变量Path即可完成设置。Mac用户可参考相关教程进行配置。

三、代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from selenium import webdriver
import datetime
import time


def login():
  # 打开淘宝登录页,并进行扫码登录
  browser.get("https://www.taobao.com")
  time.sleep(3)
  if browser.find_element_by_link_text("亲,请登录"):
    browser.find_element_by_link_text("亲,请登录").click()
    print("请在15秒内完成扫码")
    time.sleep(15)
    browser.get("https://cart.taobao.com/cart.htm")
  time.sleep(3)

  now = datetime.datetime.now()
  print('login success:', now.strftime('%Y-%m-%d %H:%M:%S'))


def buy(times, choose):
  is_buyed = False
  # 点击购物车里全选按钮
  if choose == 2:
    print("请手动勾选需要购买的商品")
  while True:
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
    print('现在时间:', now)
    # 对比时间,时间到的话就点击结算
    if now > times:
      if choose == 1:
        while True:
          try:
            if browser.find_element_by_id("J_SelectAllcbx1"):
              browser.find_element_by_id("J_SelectAllcbx1").click()
              print('尝试全选')
              break
          except:
            print("找不到全选按钮")
      # 点击结算按钮
      try:
        if browser.find_element_by_id("J_Go"):
          browser.find_element_by_id("J_Go").click()
          print("结算成功")
      except:
        pass
      while True:
        try:
          if browser.find_element_by_link_text('提交订单') and is_buyed == False:
            browser.find_element_by_link_text('提交订单').click()
            now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
            print("抢购成功时间:%s" % now1)
        except:
          print("再次尝试提交订单")
      time.sleep(0.005)


if __name__ == "__main__":
  times = input("请输入抢购时间,格式如(2018-09-06 11:20:00.000000):")
  # 时间格式:"2018-09-06 11:20:00.000000"
  browser = webdriver.Chrome()
  browser.maximize_window()
  login()
  choose = input("到时间自动勾选购物车请输入“1”,否则输入“2”:")
  buy(times, choose)

最后运行run()函数即可执行。

至此,关于Python+Selenium+Chrome实现淘宝购物车秒杀自动结算的介绍结束。如需了解更多相关内容,请搜索本站历史文章或继续浏览后续文章,感谢支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。