• Python爬虫抢购某宝秒杀商品


    某宝秒杀,用毫秒级的精准度来抢购!
    你还在为各种活动秒杀 抢不过别人而烦恼吗?

    应粉丝要求 今天出一期 利用Python爬虫 抢购秒杀商品的文章
    目录
    ​ 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去自动执行。

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

    555d332cfbe9ef29e9fed1b14cd03e49.png

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

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


    ​ 执行上述代码,浏览器会自动打开并显示如下,证明我们已经开始通过代码操控浏览器了。

    fa3208f670255d39e379d3e920d22f33.png

    2,用代码实现购物流程
    2.1 访问某宝:

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



    2.2登录某宝:

    c9ebb19f0b22f1969371656a5fc70f59.png

     

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



    2.3 进入购物车

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

    2.4 选中所有商品

    4f7c10d31522c2942f93431ca726a8ab.png

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



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

    1. def buy(buy_time):  #buy_time 购买时间
    2.     while True:
    3.         now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
    4.         print('当前时间:%s'%now)
    5.         #判断是否到达抢购时间
    6.         if now>buy_time:
    7.             try:
    8.                 driver.find_element_by_partial_link_text('结 算').click()
    9.             except:
    10.                 pass
    11.         #对比时间,循环提交订单
    12.         while True:
    13.                 try:
    14.                     if driver.find_element_by_link_text('提交订单'):
    15.                         driver.find_element_by_link_text('提交订单').click()
    16.                         print(f"抢购成功,请尽快付款")
    17.                 except:
    18.                     print(f"再次尝试提交订单")
    19.             time.sleep(0.01)


     


    ​ 这样就可以通过设定的段时间去定时定点抢购商品啦!

       

    0b0157f40c8c531074c2e9368a4a5eac.png

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

    d40d8a6028e3855d0ceaf4ce0c386c80.png

    政胤每天都走在刑的第一线

    大家给点个免费的关注吧

    感谢

     

  • 相关阅读:
    调度程序的实现
    Springboot2+thymeleaf+Jpa实现CRUD操作
    ArduPilot开源飞控之AP_ExternalAHRS_VectorNav
    基于卡尔曼滤波进行四旋翼动力学建模(Simulink&Matlab)
    日志管理制度
    Oracle 逻辑备份(数据迁移)
    开拓经验专栏:从十来天的晨型人体验开始
    JavaWeb--JDBC核心技术
    《C和指针》(5)操作符和表达式
    C++实现坦克大战(超详细)(文末附源码!!!)
  • 原文地址:https://blog.csdn.net/m0_69043821/article/details/125098349