selenium和pyautogui实现简单的学习通自动化刷课

本文介绍了作者如何使用Python和selenium、pyautogui库开发一个自动化脚本来自动登录学习通并实现课程切换,尽管面临挑战如图形验证码和动态加载内容,作者分享了实现过程,包括登录、模拟鼠标操作以及未解决的问题和改进方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.整体概述

        最近迷上了python自动化,再加上我学习通还有选修课程没有刷,突发奇想看能不能写一个自动化刷课的python程序。虽然面临被检测的风险,但程序整个制作过程还是收获满满的。

        学习通在每节课播放结束后并不会自动播放下一节课,所以这个自动化实现了自动点击下一节课的功能。

        基本思路是这样的,自动登录(图形验证码需要借助opencv库,学了之后再更新代码);爬取课程时长以控制自动化操作;模拟鼠标,在每节课结束后自动播放下一节课。这样就可在教室上课时,宿舍电脑挂机刷课了。

        整个过程需要用到selenium库和pyautogui库。selenium可以定位html标签元素,可以爬取网页信息,和实现一些鼠标和键盘输入的自动化操作。pyautogui库是也是操控键盘和鼠标的库。你或许会问这不和selenium的功能重复了吗。主要是本博主才疏学浅,学习通用了js动态添加的功能,我没找到办法用selenium定位这种源代码里面没有的标签,所以我借助了pyautogui库里面通过位置操控鼠标的功能,而不是定位标签元素去点击。  

二.实现过程

2.1 selenium库创建一个浏览器的对象

        开始之前需要做点准备工作

        1.安装selenium库和pyautogui库,这就不过多说明了,可以在pycharm里面操作。

        2.使用selenium操控浏览器的时候需要下载对应的浏览器驱动。先去浏览器设置里面找到浏览器的版本,然后去WebDriver官网下载

### 学习通脚本无法拖动解决方案 当遇到学习通脚本无法正常工作的情况时,通常是因为浏览器的安全设置阻止了某些JavaScript操作或是页面加载过程中出现了错误。对于视频播放器无法响应拖拽事件的问题,可以尝试通过调整浏览器的开发者选项来解决问题[^1]。 #### 修改浏览器安全策略 如果发现网页中的视频进度条无法被拖动,这可能是由于浏览器的安全机制限制了对媒体文件的操作。可以通过启用浏览器的开发者模式并修改部分权限设置来绕过这些限制: ```javascript // JavaScript代码用于检测当前环境是否允许交互 if (document.querySelector('video') !== null) { console.log("找到视频元素"); } else { console.error("未找到视频元素"); } ``` #### 使用控制台调试 利用浏览器内置的`Console面板`可以帮助诊断具体原因所在。打开此面板后输入命令测试是否存在异常报错信息,比如常见的`uncaught TypeError: Cannot read properties of null`这类提示意味着试图访问的对象为空值或不存在于DOM树中。 一旦确认问题是因特定对象丢失引起,则需进一步检查HTML结构以及CSS样式表是否有误配置影响到了目标节点的选择与渲染过程;同时也要留意网络请求状态确保资源能够顺利加载完成而不至于中途断开连接造成组件初始化失败等问题发生。 #### 自动化处理方案 为了实现更加稳定的自动化观看体验,在编写用户脚本时应当加入必要的容错逻辑以应对可能出现的各种意外情况。例如定期新页面保持会话有效、监听播放结束事件自动跳转下一章节等功能都可以显著提高效率减少人工干预次数。 ```javascript function autoPlayNext() { const videoElement = document.querySelector('video'); if (!videoElement) return; videoElement.addEventListener('ended', () => { // 执行切换到下一个程的动作 nextButton.click(); }); } autoPlayNext(); // 启动函数监控 ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值