Python魔法:使用PyAutoGUI优化学习过程的完美指南

本文介绍了一款基于Python的自动化脚本,用于某学习平台自动播放和切换视频,强调了合法使用的重要性,防止用于刷课。脚本依赖pyautogui、PIL等库,提供安全使用指导和注意事项。
摘要由CSDN通过智能技术生成

应@YLY之邀写这篇文章
前两天写了一个python的自动化操作脚本用于某学习平台自动播放网课视频。
参考了https://github.com/LuDreamst/xuexitong_auto_play
项目地址:https://github.com/LCHLCHLCHLCH/autoGUI
如果这个项目对您有帮助,麻烦github里面给个star!

安全声明

本程序旨在帮助用户提高学习效率,但同时也强调对使用环境和他人利益的尊重。使用者需自行承担使用本程序可能带来的风险和责任。禁止将本程序用于任何违法、侵权或不当用途,包括但不限于利用自动化脚本进行课程刷课、作弊等行为。一经发现违反本声明的行为,将立即停止对本程序的使用,并承担相应的法律责任。

我制作此程序的初衷是为了帮助用户更高效地利用学习平台资源,提升学习效率。然而,滥用自动化工具进行刷课等行为不仅违反了学习平台的使用规定,也损害了其他用户的利益,严重影响了平台的公平性和教育质量。因此,我们强调严禁将本程序用于刷课等违规行为,并呼吁用户在使用本程序时遵守相关法律法规和学校、平台的规定,维护良好的网络环境和学术道德。

使用方法

依赖安装

本代码依赖于以下python模块:

  • pyautogui
  • time
  • PIL(pillow)
  • pyscreeze
  • opencv-python

在运行代码之前请确保您已经安装了python以及以上模块。

代码内容

import pyautogui
import PIL
import pyscreeze
import time


# 读取屏幕分辨率大小
screenWidth, screenHeight = pyautogui.size()


# 定位函数,屏幕中含匹配项时返回中心x,y坐标,无匹配项则返回None
def location(png, confidence):
	icon = pyautogui.locateOnScreen(png, confidence=confidence)  # 新增参数confidence,须配置opencv环境
	if icon is not None:
		center = pyautogui.center(icon)
		return center
	else:
		time.sleep(3)  # 考虑网页的加载时间,无法识别时延时3秒
		icon = pyautogui.locateOnScreen(png, confidence=confidence)
		if icon is None:
			return None
		else:
			center = pyautogui.center(icon)
			return center

		
def main():
	print("程序将于3秒后开始运行")
	time.sleep(3)
	while(True):
		# 点击播放按钮
		while True:
			try:
				playButton = location('playbutton.png',0.9)
				pyautogui.moveTo(playButton[0], playButton[1], duration=0.8)
				pyautogui.click()
				break
			except:
				time.sleep(3)


		# 等待视频播放结束,这时屏幕上会出现重播标志
		while True:
			try:
				location('replay.png',0.9)
				break
			except:
				time.sleep(10)

		# 寻找下一节的标志并点击
		while True:
			try:
				next = location('next.png',0.9)
				pyautogui.moveTo(next[0],next[1],duration=0.9)
				pyautogui.click()
				break
			except:
				pyautogui.scroll(-750)

		# 寻找下一节的标志并点击(这时处在答题界面)
		while True:
			try:
				next = location('next.png',0.9)
				pyautogui.moveTo(next[0],next[1],duration=0.9)
				pyautogui.click()
				break
			except:
				pyautogui.scroll(-750)


if __name__ == '__main__':
	main()

代码使用

该代码需要使用网页版的“该学习平台”以及一台电脑。

  • 首先确保您已经将所需的图片文件和代码放在同一目录。如图。注意python脚本可以随意命名。图片文件的名字尽量不要改变。如果非要该的话请在python脚本中也做出相应的改变。
    在这里插入图片描述

  • 将“该学习平台”打开到这个页面:

    然后执行上述python代码。

代码解析

该代码使用了pyautogui模拟了鼠标点击和滚动的动作。

  • 在起始的页面,程序会在屏幕上检测播放按钮,即文件中的playbutton.png。如果有匹配到的按钮就移动到按钮的位置然后点击;否则就过一小会再检测一次。
  • 然后该程序会每十秒检测一次视频播放是否完成。视频播放完成的标志是屏幕上出现“重播”的标志。
  • 检测到视频播放完成以后,该程序会不断往下滚动,并寻找“下一节”的按钮,即next.png。如果找不到就继续往下滚再次寻找。
  • 点击以后就会进入到答题界面。程序会继续下滚寻找“下一节”的标志并进行点击。
  • 此时学习通界面就会进入下一节课的视频播放界面。回到第一步重复执行。

注意事项

  • 非常非常重要的一点,请 一定确保把每节课的题目都答完以后再使用该脚本!! 本程序没有考虑题目没有答完的情况。如果在没有答完的情况下运行,可能会出现难以预料的bug!!!
  • 该程序可能会陷入死循环,导致进度停住。此时需要手动停止脚本的执行。
  • 使用前建议将屏幕分辨率调整至1920x1080。其他分辨率理论上也能执行,但是未经试验过。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值