38. 实战:基于selenium的某宝秒杀抢购系统(附完整代码)

这篇具有很好参考价值的文章主要介绍了38. 实战:基于selenium的某宝秒杀抢购系统(附完整代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

目的

思路

代码实现

1. 自动打开浏览器,并配置选项

2. 实现扫码登陆

3. 进入购物车选择秒杀商品(本例勾选全选)

4. 获取当前时间,大于设定时间时下单

5. 下单成功后语音提示用户返回付款 

完整源码

运行效果

总结


前言

每到购物节,某宝某东等购物平台就会有层出不穷的秒杀活动,但我们总会由于手速、网速等原因抢不到自己需要的低价商品,很是苦恼。这个时候我们的Python自动化脚本工具又可以登场了:利用selenium工具设计自动抢购系统,到点自助下单就可以咯~ 

本节以某宝为例,给大家做一个简要的演示。


目的

编写一个自动抢购程序,要求能设定一个时间和目标商品(提前加入购物车中),使用自动化工具持续监测当前时间,一旦到设定时间,自动下单某宝设定好的商品并提交,抢占商品。


思路

1. 实现自动打开浏览器,进入登录界面。

2. 扫码登陆/账号密码登录(账号密码登录的方式我在之前12306自动购票系统讲解过,想修改为账号密码登录的同学可以去这篇文章查看:28. 实战:基于selenium实现12306自动购票),本节我们为了方便(可以不输验证码或者修改账号密码),就使用扫码登陆,简单粗暴。

3. 登陆以后进入购物车,选中需要商品的勾,等待下单(本例直接全选购物车)。

4. 当当前时间大于剩余时间,结算订单。

5. 语音提示下单完成,让用户尽快付款。


代码实现

要用到的库:

datetime;time;selenium;pypiwin32

不知道怎么安装selenium的同学移步:selenium简介

1. 自动打开浏览器,并配置选项

首先导包:

# 导入自动化检测工具
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By

然后对浏览器进行设置:

opt.add_argument('--disable-blink-features=AutomationControlled')
opt.add_experimental_option('detach', True)
opt.add_argument('--start-maximized')  # 浏览器窗口最大

browser = webdriver.Chrome(options=opt)

设置当网页检测当前浏览器时不会返回selenium自动工具;

设置程序执行完毕以后浏览器不自动关闭;

设置默认浏览器全屏;

进入某宝网站:

browser.get("https://链接放评论区.com")

2. 实现扫码登陆

如果想要实现账号密码加验证码登陆的同学参考我之前的这两篇文章哈:( 简单的验证码实战基于selenium实现12306自动购票)!!!

扫码登陆功能:

time.sleep(3)  # 查找  网络元素 来自 链接 文本(亲,请登录) # 点击
browser.find_element(By.LINK_TEXT, "亲,请登录").click()
print(f"请尽快扫码登录")
time.sleep(10)

因为我们自动化测试工具打开浏览器以后并不会记录用户Cookie,你可以认为是刚刚下载的一个新浏览器,没有任何痕迹,所以就算我们之前在谷歌浏览器登陆过某宝也不会默认自动登陆的。

我们首页上可以找到“亲,请登录”的字样,我们就可以根据链接提示文本定位到登录选项,进入登陆界面,然后等待十秒进行扫码登陆。

3. 进入购物车选择秒杀商品(本例勾选全选)

browser.get("https://购物车链接放评论区")
time.sleep(3)
# 是否全选购物车
while True:
    try:            # 查找 元素 来自  ID
        if browser.find_element(By.ID, "J_SelectAll1"):
            browser.find_element(By.ID, "J_SelectAll1").click()
            break
    except:
        print(f"找不到购买按钮")

当能够找到全选框的时候点击选择,否则提示找不到购买按钮,程序结束。

4. 获取当前时间,大于设定时间时下单

while True:
    # 获取电脑现在的时间,                      year month day
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
    # 对比时间,时间到的话就点击结算
    print(now)
    if now > set_time:
        # 点击结算按钮
        while True:
            try:
                if browser.find_element(By.LINK_TEXT, "结 算"):
                    print("here")
                    browser.find_element(By.LINK_TEXT, "结 算").click()
                    print(f"主人,程序锁定商品,结算成功")
                    break
            except:
                pass

导入datetime库,获取当前时间,设置格式为年-月-日 小时:分钟:秒.毫秒

实时监测当前时间,如果大于了设定时间,就开始检测结算按钮。

如果检测到了结算按钮,则点击,否则继续循环,直到检测到结算按钮为止。

5. 下单成功后语音提示用户返回付款 

        while True:
            try:
                if browser.find_element(By.LINK_TEXT, '提交订单'):
                    browser.find_element(By.LINK_TEXT, '提交订单').click()
                    print(f"抢购成功,请尽快付款")
            except:
                print(f"主人,结算提交成功,我已帮你抢到商品啦,请及时支付订单")
                speaker.Speak(f"主人,结算提交成功,我已帮你抢到商品啦,请及时支付订单")
                break
        time.sleep(0.01)

这也是一个死循环,检测提交订单按钮,如果检测到就点击,并且返回信息,抢购成功;

如果没有检测到,说明已经跳转了支付界面,返回结算成功信息,并且语音播报已抢到商品,提醒用户尽快支付该订单。

涉及到语音播报库,要用到pypiwin32这个库,直接pip install就可以了:

抢购软件源码,Python爬虫入门、进阶与实战,selenium,测试工具,python,语音播报


完整源码

# Created at UESTC
# Author: Vector Kun
# Time: 2023/3/4 14:49

import datetime  # 模块
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
import time
# 导入自动化检测工具
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import win32com.client
speaker = win32com.client.Dispatch("SAPI.SpVoice")

set_time = "2023-03-04 15:29:00.00000000"
opt = Options()
# option.add_experimental_option('excludeSwitches', ['enable-automation'])
opt.add_argument('--disable-blink-features=AutomationControlled')
opt.add_experimental_option('detach', True)
opt.add_argument('--start-maximized')  # 浏览器窗口最大

browser = webdriver.Chrome(options=opt)
browser.get("见评论区")
time.sleep(3)  # 查找  网络元素 来自 链接 文本(亲,请登录) # 点击
browser.find_element(By.LINK_TEXT, "亲,请登录").click()
print(f"请尽快扫码登录")
time.sleep(10)
browser.get("见评论区")
time.sleep(3)
# 是否全选购物车
while True:
    try:            # 查找 元素 来自  ID
        if browser.find_element(By.ID, "J_SelectAll1"):
            browser.find_element(By.ID, "J_SelectAll1").click()
            break
    except:
        print(f"找不到购买按钮")
while True:
    # 获取电脑现在的时间,                      year month day
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
    # 对比时间,时间到的话就点击结算
    print(now)
    if now > set_time:
        # 点击结算按钮
        while True:
            try:
                if browser.find_element(By.LINK_TEXT, "结 算"):
                    print("here")
                    browser.find_element(By.LINK_TEXT, "结 算").click()
                    print(f"主人,程序锁定商品,结算成功")
                    break
            except:
                pass
        while True:
            try:
                if browser.find_element(By.LINK_TEXT, '提交订单'):
                    browser.find_element(By.LINK_TEXT, '提交订单').click()
                    print(f"抢购成功,请尽快付款")
            except:
                print(f"主人,结算提交成功,我已帮你抢到商品啦,请及时支付订单")
                speaker.Speak(f"主人,结算提交成功,我已帮你抢到商品啦,请及时支付订单")
                break
        time.sleep(0.01)

运行效果

抢购软件源码,Python爬虫入门、进阶与实战,selenium,测试工具,python,语音播报

抢购软件源码,Python爬虫入门、进阶与实战,selenium,测试工具,python,语音播报 


总结

本节我们使用老朋友selenium进行了一系列的操作,实现了某宝秒杀商品的购买,还是很有实用价值的,很适合新手小白练手。

有什么配置问题或者其他技术问题,又或者是建议等都可以评论或者私信我哦~每一条都会回复的。文章来源地址https://www.toymoban.com/news/detail-682837.html

到了这里,关于38. 实战:基于selenium的某宝秒杀抢购系统(附完整代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • chatgpt赋能python:使用Python来进行抢购,如何轻松秒杀商品

    在现代社会,大量的人们使用电商平台来完成他们的购物需求。然而,在疯狂的购物节日时,例如\\\"双11\\\",商品往往会被抢购一空。为此,许多人希望能够使用自动化脚本,在秒级别内完成商品的购买,以避免人工购物时的抢购高峰。 Python是一种优秀的编程语言,因为它可以

    2024年02月07日
    浏览(37)
  • 华为云应用中间件DCS系列—Redis实现(电商网站)秒杀抢购示例

    云服务、API、SDK,调试,查看,我都行 阅读短文您可以学习到:应用中间件系列之Redis实现(电商网站)秒杀抢购示例 华为云开发者插件(Huawei Cloud Toolkit),作为华为云围绕其产品能力向开发者桌面上的延伸,帮助开发者快速在本地连接华为云,打通华为云到开发者的最后

    2024年02月07日
    浏览(26)
  • 双11自制Python淘宝秒杀抢购脚本代码,女朋友夸个不停 !

    大家好,我是不学前端的前端程序员, 事情是这个样子的,最近不是双十一预购秒杀嘛 由于我女朋友比较笨,手速比较慢,就一直抢不到,她没抢到特价商品就不开心, 她不开心,我也就不能跟着开心,就别提好好打游戏了 为了解决这个问题,就决定写一个自动定时抢购的

    2024年02月19日
    浏览(33)
  • 我制作了python脚本自动抢购淘宝秒杀产品,学会优先享受双十一福利

    每到双十一,各位男性朋友们就要大吐血了,万一女朋友想要的东西还没有抢到,就要更加… 所以我便创造了这个自动抢购的脚本,希望对你们有用 思路很简单,就是让“程序”帮我们自动打开浏览器,进入淘宝,然后到购物车等待抢购时间,自动购买并支付。 导入模块,

    2024年02月11日
    浏览(34)
  • 使用Java基于selenium实现淘宝秒杀自动化

    无意在论坛刷到了基于Python实现淘宝秒杀的小demo,觉得挺有意思的,就用Python写了一下 后来写时间判断的时候发现时间格式要转来转去的,Python是真的不熟,想到openqa好像也有selenium,就试一下用Java去写,简单搜了一下用Java写这个的真不多,自己折腾一下咯,不过涉及到爬

    2023年04月11日
    浏览(74)
  • 【java爬虫】使用selenium获取某宝联盟淘口令

    上一篇文章我们已经介绍过使用selenium获取优惠券基本信息的方法 (15条消息) 【java爬虫】使用selenium爬取优惠券_haohulala的博客-CSDN博客 本文将在上一篇文章的基础上更进一步,获取每个优惠券的淘口令,毕竟我们只有复制淘口令才能在APP里面获取优惠券嘛 获取淘口令的方法也

    2024年02月15日
    浏览(28)
  • selenium登录某宝跳过反爬监测及滑块验证

    一、使用chrome浏览器,浏览器驱动与浏览器版本必须一致,浏览器驱动下载好后放在python安装目录下的scripts文件夹里 二、可以跳过滑动验证码,代码如下:

    2024年02月11日
    浏览(27)
  • selenium入门详细指南(附淘宝抢购案例)

    selenium是一款web自动化测试工具,可以很方便地模拟真实用户对浏览器进行操作,它支持各种主流浏览器:IE、Chrome、Firefox、Safari、Opera等。 selenium有多种编程语言的客户端驱动,编写自动化脚本语法简洁,其中python的selenium库便非常的受欢迎。 你可以使用selenium做web测试或者

    2024年02月20日
    浏览(25)
  • 深度学习实战38-基于清华ChatGLM-6b开源模型做体检报告解读任务,让体检报告解读变得轻松

    大家好,我是微学AI,今天给大家介绍一下深度学习实战38-基于清华ChatGLM-6b开源模型做体检报告解读任务,让体检报告解读变得轻松。ChatGLM-6b是清华大学团队开源的一个语言大模型。本文将介绍一种基于ChatGLM-6B的体检报告智能解读应用项目。首先,我们将讨论体检报告解读

    2024年02月10日
    浏览(55)
  • php - 超详细 thinkphp + redis 实现商品秒杀抢购功能,提供完整流程详细讲解及企业级功能示例源代码,环境准备、数据库表设计、并发压力测试等(新手小白一看就懂!)

    很多文章都已经过时了,而且还不讲原理,本文一次性说清楚。 很多电商系统几乎都有秒杀功能,那么用 tp+redis 怎么实现呢? 本文详细讲解商品秒杀功能的实现,提供详细的代码及注释,包括环境准备、环境搭建教程(已搭建的跳过即可)、数据库表设计、压力测试、示例

    2023年04月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包