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

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

本文介绍如何利用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 相关产品和应用

全部下载

专题列表