广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python实现自动抢课脚本
  • 787
分享到

python实现自动抢课脚本

python脚本语言图像识别 2023-09-08 06:09:09 787人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

自动抢课脚本使用手册 @danteking dating from 2021.12.7 and last updating at 2021.12.8 gitee仓库 github仓库 借助pyaut

自动抢课脚本使用手册

@danteking dating from 2021.12.7 and last updating at 2021.12.8
gitee仓库
github仓库


借助pyautogui库,我们可以轻松地控制鼠标、键盘以及进行图像识别,实现自动抢课的功能

1.准备工作

我们在仓库里提供了2个必须的文件,包括:

  • auto_get_lesson_pic_recognize.py:脚本文件
  • info.xlsx:执行操作信息文件

在运行这个脚本(auto_get_lesson_pic_recognize.py)前,你需要:

安装python并成功配置环境变量,可以在cmd下这样检查;若返回版本号,则已安装

Python --version

安装以下的依赖,windows用户请以管理员用户运行cmd并依次执行:

# pyautogui库pip install pyautogui# 读取excel表格的库pip install xlrd==1.2.0# 向计算机的剪贴板发送文本/从计算机剪贴板接收文本的库pip install pyperclip# 计算机视觉库pip install OpenCV-python# 图像处理库pip install pillow 

到此,成功安装了5个库

2.配合使用py脚本和xlsx文件

第一步

需要将抢课的每一步所需要点击的图标/超链接在头脑中想清楚

第二步

将抢课每一步的所需点击的图标/超链接截图,保存在和py脚本同一路径下

在这里插入图片描述

打开excel表格,根据第一行提示在单元格中进行输入:

在这里插入图片描述

  • A列------备注(可填可不填)

  • B列------操作类型,目前包括:

    • 1.左键单击(循环直到找到图片为止):意思就是如果没有找到你设置的那张图片,它就一直找下去,找不到就不停;你所设置的次数是找到成功的次数
    • 2.输入字符串
    • 3.等待
    • 4.热键
    • 5.左键单击(无需找到图片):找图片不管找没找到,就找那这么多次,次数=找到成功的次数+找到失败的次数
  • C列------B列的参数

    • 待点击图标名(包括图片后缀名,如.png)
    • 等待的时间(秒)
    • 输入的字符串
    • 热键
  • D列------单击重复次数

    • 不填,默认为1
    • 若想无限单击,填-1

按照你的选课步骤从第2行开始顺序填写excel表格的执行步骤

此时,保存excel表格

第三步

我们打开需要进行操作的选课网页

我们在cmd下切换到脚本所在目录

# 切换到D盘D:# 切换到xx文件夹cd xxpython auto_get_lesson_pic_recognize.py

根据提示执行即可

上图示例

在这里插入图片描述

3.auto_get_lesson_pic_recognize功能介绍

(1).抢课一次

注意

  • 截图时请随机应变,匹配到图像后,鼠标自动点击图像正中央,建议配合qq截图,ctrl+a/t+a,选取一个独一无二的标记在截图中并且将所要点击的点放在qq截图四个蓝点的中央

在这里插入图片描述

  • 如果遇到同一画面中需要点击的图标存在多个一样的,没有特征参照物,可以在那一步设置等待若干秒,手动点击图标
  • 若未成功识别图片,将循环执行识别操作;手动点击图标成功,excel表格中中的指令也会跳到下一条
  • 考虑到网络延迟问题,建议合理利用等待功能

(2).蹲点捡漏

  • 在抢课一次的基础上套了一层死循环
  • 巧妙利用f5、左键单击(循环直到找到图片为止)、左键单击(无需找到图片),可以24h挂机实现蹲点捡漏
  • 请发挥你的聪明才智,正确截图

在这里插入图片描述

4.坐标版本(不建议使用)

坐标版本位于coordinate_version目录下

如果能够确切知道所点击的位置的坐标,可以选用坐标版本

配合qq截图,你能够轻松知道你的鼠标在1920×1080分辨率下在屏幕上的坐标(以像素为单位)

顺序排列单击位置的坐标,实现抢课

excel表格中根据提示填写坐标、操作

5.代码

import pyautoguiimport timeimport xlrdimport pyperclip# 定义鼠标事件# duration类似于移动时间或移动速度,省略后则是瞬间移动到指定的位置def Mouse(click_times, img_name, retry_times):    if retry_times == 1:        location = pyautogui.locateCenterOnScreen(img_name, confidence=0.9)        if location is not None:            pyautogui.click(location.x, location.y, clicks=click_times, duration=0.2, interval=0.2)    elif retry_times == -1:        while True:            location = pyautogui.locateCenterOnScreen(img_name,confidence=0.9)            if location is not None:                pyautogui.click(location.x, location.y, clicks=click_times, duration=0.2, interval=0.2)    elif retry_times > 1:        i = 1        while i < retry_times + 1:            location = pyautogui.locateCenterOnScreen(img_name,confidence=0.9)            if location is not None:                pyautogui.click(location.x, location.y, clicks=click_times, duration=0.2, interval=0.2)                print("重复{}第{}次".fORMat(img_name, i))                i = i + 1# cell_value     1.0:左键单击#                2.0:输入字符串#                3.0:等待#                4.0:热键# 任务一:进行一轮抢课def WorkFunction1(sheet):    i = 1    while i < sheet.nrows:        # 取excel表格中第i行操作        cmd_type = sheet.cell_value(i, 1)        # 1:左键单击        if cmd_type == 1.0:            # 获取图片名称            img_name = sheet.cell_value(i, 2)            retry_times = 1            if sheet.cell_type(i, 3) == 2 and sheet.cell_value(i, 3) != 0:                retry_times = sheet.cell_value(i, 3)            Mouse(1, img_name, retry_times)            print("单击左键:{}  Done".format(img_name))        # 2:输入字符串        elif cmd_type == 2.0:            string = sheet.cell_value(i, 2)            pyperclip.copy(string)            pyautogui.hoTKEy('ctrl','v')            print("输入字符串:{}  Done".format(string))        # 3:等待        elif cmd_type == 3.0:            wait_time = sheet.cell_value(i, 2)            time.sleep(wait_time)            print("等待 {} 秒  Done".format(wait_time))        # 4:键盘热键        elif cmd_type == 4.0:            hotkey = sheet.cell_value(i, 2)            # 防止刷新过快停留在原网页            time.sleep(1)            pyautogui.hotkey(hotkey)            print("按下 {}  Done".format(hotkey))            time.sleep(1)        i = i + 1# 任务二:蹲点等人退课def WorkFunction2(sheet) :    while True:        WorkFunction1(sheet)        time.sleep(2)if __name__ == '__main__':    start_time = time.time()    file = "info.xlsx"    # 打开文件    xr = xlrd.open_workbook(filename=file)    # 通过索引顺序获取表单    sheet = xr.sheet_by_index(0)    print("------欢迎使用自动抢课脚本------")    print("---------@danteking---------")    print("1.抢课一次")    print("2.蹲点等人退课后抢指定课")    choice = input(">>")    start_time = time.time()    if choice == "1":        WorkFunction1(sheet)    elif choice == "2":        WorkFunction2(sheet)    else:        print("非法输入,退出")    end_time = time.time()    time_consume = end_time - start_time    time_consume = ('%.2f' % time_consume)    print("耗时 {} 秒".format(time_consume))

6.致谢及感想

感谢 @不高兴就喝水 up主让我知道了pyautogui 库的存在

严禁将此脚本用于恶意占课,这违背了开发者的初衷

项目采用MIT License,二次开发请同样遵循该协议

来源地址:https://blog.csdn.net/m0_52640673/article/details/121889155

--结束END--

本文标题: python实现自动抢课脚本

本文链接: https://www.lsjlt.com/news/399435.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python实现自动抢课脚本
    自动抢课脚本使用手册 @danteking dating from 2021.12.7 and last updating at 2021.12.8 gitee仓库 github仓库 借助pyaut...
    99+
    2023-09-08
    python 脚本语言 图像识别
  • python实现自动抢课脚本的示例代码
    目录自动抢课脚本使用手册1.准备工作2.配合使用py脚本和xlsx文件3.auto_get_lesson_pic_recognize功能介绍4.坐标版本(不建议使用)5.代码自动抢课...
    99+
    2022-11-12
  • 简单实现大学选修课抢课脚本(Python)
    大学选修课抢课 需要准备的 Python环境 完善代码在:抢课脚本 实现步骤 1.实现登录功能 首先进入教务系统,按下F12键进入浏览器的开发者模式,输入账号、密码、验证码后进行抓包。通过抓包,可以发...
    99+
    2023-09-12
    python 开发语言 爬虫
  • python医院自动化抢号脚本
    挂号自动化脚本思路 登录华西医院网页。 browser = webdriver.Chrome()#进入网址browser.get('http://guahao.wchscu.cn/file/h5/index.html#/') 自动登录,向手...
    99+
    2023-09-01
    python 自动化 源码软件
  • 京东自动抢茅台脚本
    目前,在多家电商平台都可以抢购茅台酒,包括天猫超市、京东、天猫会员店、国美、苏宁、网易严选等渠道,消费者使用一台手机便可参与抢购,不过,很多消费者依旧不清楚用手机抢茅台怎么抢,因为抢购的人实在太多,需...
    99+
    2023-09-03
    python 开发语言 numpy 产品运营 职场和发展
  • Python 实现的12306抢票脚本
    Python12306抢票脚本 本脚本使用一个类来实现所有代码,大体上分为以下几个模块及其步骤:- 初始化对象属性(在抢票前进行的属性初始化,包括初始化浏览器模拟对象,个人信息等)。- 建立模拟浏览器,模拟浏览器进行cookie等存储。...
    99+
    2023-01-30
    脚本 Python
  • Python如何实现抢购脚本
    这篇文章将为大家详细讲解有关Python如何实现抢购脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python脚本实现安装Python。我安装的是anaconda安装webdriver扩展。它是Sel...
    99+
    2023-06-25
  • python淘宝抢购脚本程序实现
    目录一、官网下载火狐浏览器二、下载geckodriver,并解压到火狐浏览器文件夹根目录三、添加火狐浏览器根目录到系统环境变量四、下载并安装python3及pycharm开发工具&n...
    99+
    2022-11-13
  • python selenium 模拟浏览器自动操作抢购脚本
    每逢秒杀,都在遗憾网速和手速慢没能抢购到商品吧。 手写一个脚本,让程序帮你抢,抢到的概率会大大提升。 废话不多说,直接上代码。 本实例以华为官网抢购手机为例 """(1) 安装 chromedriver a. 去官网 (http://chr...
    99+
    2023-09-13
    python selenium 开发语言
  • 基于Python和Selenium的大麦网自动抢票脚本
    自动化抢票的脚本,需通过Selenium库来实现自动化操作。(学习参考) # 导入必要的库from selenium import webdriverfrom selenium.webdriver.c...
    99+
    2023-08-31
    python selenium chrome
  • python实现自动化脚本编写
    目录1. 打开浏览器,访问p.to2. 登陆3. 修改管理员密码4. 单元测试数据5. 检查输入的数据合法性6. 获取输入错误数据之后的页面提示语7. 编写测试用例8.编写单元测试类8.1 单元测试中的通用操作8.2...
    99+
    2022-06-02
    python 自动化脚本 python 自动化脚本编写
  • 教你用Python写一个京东自动下单抢购脚本
    1 问题背景 经过无数次抢购失败后,发现商家会不定时的放出少量货源,目测每次会有几台。如果我们编写一个脚本程序24小时不间断监听商品库存,一旦查询到货源便开始尝试自动下单,这样就可以...
    99+
    2023-03-23
    Python自动下单 Python抢购脚本 Python脚本 Python京东抢购
  • 怎么用Python写一个京东自动下单抢购脚本
    本文小编为大家详细介绍“怎么用Python写一个京东自动下单抢购脚本”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Python写一个京东自动下单抢购脚本”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1 问...
    99+
    2023-07-05
  • 怎么自制Python淘宝秒杀抢购脚本
    本篇内容主要讲解“怎么自制Python淘宝秒杀抢购脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么自制Python淘宝秒杀抢购脚本”吧!首先我的思路很简单,就是让“程序”帮我们自动打开浏览...
    99+
    2023-06-25
  • Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本)
    目录一、环境二、安装1.ChromeDriver安装2.Seleuinm安装3.淘宝秒杀脚本4.京东秒杀脚本总结我们的目标是秒杀淘宝或京东等的订单,这里面有几个关键点,首先需要登录淘...
    99+
    2022-11-11
  • Python脚本实现自动登录校园网
    Python自动化脚本登录校园网 所需工具:python编译环境(博主使用的pycharm作演示,其实在cmd也可以操作!) selenium自动化脚本 .bat批处理文件 第一步...
    99+
    2022-11-12
  • 利用Python实现FGO自动战斗脚本,
      Fate/Grand Order(非的肝不过欧的)作为索尼为了拯救自己不倒闭而开发的面向月厨的骗氪养成抽卡爆肝游戏,居然没有像隔壁《阴阳师》的自动战斗系统(看看别人现在都自带脚本了)。毕竟是懒得肝,就不妨写一个脚本来肝算了,省时省力...
    99+
    2023-01-30
    脚本 Python FGO
  • Python+Appium实现自动抢微信红包
    目录环境准备实现思路code环境准备 appium环境 安卓手机 usb数据线 python环境 实现思路 我们收到红包和消息都是自动置顶到第一个,于是我们打开第一个判断是否有红...
    99+
    2022-06-02
    Python 抢微信红包 Python+Appium 抢红包
  • 【Python】京东自动下单抢购脚本——双十一购物小技巧
    最近种草一款富士📷已久,但限于富士产能,一直都没有等到开放购买,在尝试几次定闹钟到点准时抢购后,果断放弃,于是花了一个周末时间写了一个简易脚本,终于成为一名合格的“富家子弟”。 ...
    99+
    2023-09-03
    python java 抢购 抢购脚本 京东
  • Python实现简单自动评论自动点赞自动关注脚本
    目录前言开发环境原理:代码实现1. 请求伪装2. 获取搜索内容的方法3. 获取作品评论4. 自动评论5. 点赞操作6. 关注操作7. 获取创作者信息8. 获取创作者视频9. 调用函数...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作