用python pyautogui库实现线上自动刷课代码

我做了个能自动帮我刷课的代码,只需要提前把相关按钮截图就可以运行了,话不多说,来看看代码吧~

# @撰写人:     符力丰
# @时间:       2024/9/23  13:54
# @版本:       1.0
# @引用:       None
# @原理简述:    None

import time
import pyautogui
import keyboard


def click(picture, confidence=0.95):
    _ = pyautogui.locateCenterOnScreen(picture, confidence=confidence)
    if _ is not None:
        pyautogui.click(_, duration=1)
    else:
        print(f"Can't find picture <{picture}>, please click by yourself.\n"
              f"click <space> to continue.\n")
        keyboard.wait('space')


class Wisdom_tree:  # 智慧树刷课
    def Init(self):
        pyautogui.scroll(300, 800, 800)
        pyautogui.moveTo(800, 850)
        pyautogui.moveTo(800, 800)

    def next_video(self):
        pyautogui.move(-20, 0, duration=0.5)
        click('picture/nextvideo.png')
        pyautogui.click(800, 800, duration=3)

    def speedup(self):
        if self.shows('picture/X1.png', confidence=0.8):
            pyautogui.moveTo(pyautogui.locateCenterOnScreen('picture/X1.png', confidence=0.8), duration=0.5)
            click('picture/X1.5.png', confidence=0.8)
            return True
        return False

    def auto_reply(self):
        for i in ('A', 'B', 'C', 'D'):
            click(f'picture/choose{i}.png')
            if self.shows('picture/right.png'):
                break
            if self.shows('picture/wrong.png'):
                click(f'picture/choose{i}.png')
        click('picture/close.png')
        pyautogui.click(800, 800, duration=1)

    def shows(self, picture, confidence=0.95):
        _ = pyautogui.locateOnScreen(picture, confidence=confidence)
        if _ is not None:
            return True
        return False

running = True
def Break():
    global running
    running = False

a = Wisdom_tree()
keyboard.add_hotkey('ctrl+space', Break)

print('》》》请在5秒内打开视频学习界面\n'
      '》》》(ctrl+空格)退出程序\n')

time.sleep(5)
speed = False

while running:
    a.Init()  # 每次初始化确保页面在最上方
    if a.shows('picture/finish.png') or a.shows('picture/finish2.png', confidence=0.98):  # 判断是否播放结束
        a.next_video()
        speed = False
    if not speed:  # 修改倍速
        speed = a.speedup()
    if a.shows('picture/question.png'):  # 自动尝试回答随堂弹出的问题
        a.auto_reply()

注意这个在不同的平台,不同的课程都需要修改代码哦~~

~(> w <)~

### Python自动学习脚本 为了实现自动化的学习过程,可以采用多种方法和技术栈。以下是两种不同的方案: #### 使用 PyAutoGUI 实现简单的鼠标和键盘控制 对于较为基础的需求,比如模拟鼠标的点击动作来切换视频播放器中的下一个视频,`PyAutoGUI` 是一种轻量级的选择。 ```python import pyautogui import time def switch_to_next_video(): """模拟鼠标点击操作以切换至下一视频""" # 移动鼠标到指定位置并单击 (需预先确定坐标) pyautogui.moveTo(100, 200) pyautogui.click() while True: # 等待当前视频结束前的一段时间 time.sleep(60 * 5) # 假设每段视频大约持续五分钟 try: switch_to_next_video() except Exception as e: print(f"发生错误: {e}") ``` 此代码片段展示了如何通过 `pyautogui` 来进行基本的屏幕交互[^1]。 #### 利用 Playwright 构建更复杂的浏览器自动化流程 当面对更加复杂的情况时——例如需要处理登录验证、页面加载时间不确定等问题,则推荐使用更为强大的工具如 Microsoft 的 Playwright 来构建完整的 Web 浏览器自动化解决方案。 ```python from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False) page = browser.new_page() # 打开目标站 page.goto('https://example.com') # 登录账号(如果必要) username_input = 'input[name="username"]' password_input = 'input[type="password"]' login_button = '.login-button' page.fill(username_input, "your_username") page.fill(password_input, "your_password") page.click(login_button) while not is_course_completed(page): play_video(page) wait_until_video_ends(page) go_to_next_lesson(page) browser.close() ``` 上述例子中包含了打开页、填写表单以及执行一系列特定的任务直到程全部看完为止的功能[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值