目录

1. 项目环境
2. 某宝抢购流程分析
3. 程序实现思路
4. 代码实践与梳理

项目环境

  • 操作系统:Windows 10
  • 开发环境:python3.7
  • IDE:Pycharm
  • 自动化模块:Selenium
  • 安装命令:pip install selenium
  • 浏览器版本:Google Chrome 99.0.4844.51
  • 浏览器驱动版本:ChromeDriver 99.0.4844.51

注意: 浏览器驱动版本与浏览器版本要一致!

抢购流程分析

1. 登录网站
2. 购物车选中抢购商品
3. 结算购买
4. 提交订单
关键:快速完成前面流程,当订单进入提交页面时,付款时间不影响抢购。

程序实现思路

购物流程都是固定没有变化的,因此可以把购物流程步骤用代码编辑好交给selenium去自动执行。

项目结构:驱动直接复制放入项目根路径

python 抢占焦点 python抢秒杀_chrome

1. 导入对应类库实现对浏览器的操作

from selenium import webdriver
import datetime    
import time
 
#自动打开浏览器并且最大化窗口
driver = webdriver.Chrome()
driver.maximize_window()

执行上述代码,

浏览器会自动打开并显示如下,

证明我们已经开始通过代码操控浏览器了。

python 抢占焦点 python抢秒杀_Chrome_02

2.用代码实现购物流程

2.1 访问某宝:

driver.get('https://www.taobao.com')

2.2登录某宝:

python 抢占焦点 python抢秒杀_python 抢占焦点_03

if driver.find_element_by_partial_link_text('亲,请登录'):
        driver.find_element_by_partial_link_text('亲,请登录').click()

2.3 进入购物车

#跳转到购物车页面
driver.get('https://cart.taobao.com/cart.htm')

2.4 选中所有商品

python 抢占焦点 python抢秒杀_开发语言_04

#寻找全选选项并勾选
if driver.find_element_by_id("J_SelectAll1"):
      driver.find_element_by_id("J_SelectAll1").click()

2.5 对比时间,提交结算(重点)

def buy(buy_time):  #buy_time 购买时间
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
        print('当前时间:%s'%now)
 
        #判断是否到达抢购时间
        if now>buy_time:
            try:
                driver.find_element_by_partial_link_text('结 算').click()
            except:
                pass
        #对比时间,循环提交订单
        while True:
                try:
                    if driver.find_element_by_link_text('提交订单'):
                        driver.find_element_by_link_text('提交订单').click()
                        print(f"抢购成功,请尽快付款")
                except:
                    print(f"再次尝试提交订单")
            time.sleep(0.01)

python 抢占焦点 python抢秒杀_chrome_05

print(f"再次尝试提交订单")
        time.sleep(0.01)
[外链图片转存中...(img-oA7Q06eg-1648366756452)]
 
    **这样就可以通过设定的段时间去定时定点抢购商品啦!**