Tampermonkey

分类下相关文章

继续教育网站考试自动答题

帮媳妇实现了一个继续教育考试自动答题的功能。测试了一下效果还可以。 比自己网上百度搜素答案方便多了,否则自己查一遍得半个小时。 多选题自动选择 多选题漏选的原因分析 最后一题时,计数还在涨 本身 interval 在同一个题目页面内不断执行。 解决方案,答题后,clear interval。 分情况来看,如果最后一题没有答案,则 no answer 涨,有答案,has answer 涨。 网络卡顿造成的多选漏选原因: 根本原因,每个题目都是一个独立的页面,需要等待服务器返回。于是点击下一题后,如果两秒内题目没有刷出来,就会再执行一次答题过程。而多选题的特殊之处就在于,再次点击会导致勾选被取消。 ...

阅读全文...

会计网校在后台界面加上是否提交,及提交订单的金额

待定,确认是否有效再说。 不过、提交后要刷新一下才能显示 支付中:已提交 未支付:未提交 多学年的账号需注意 在导入模板里把这个排序值也帮我加一下 todo [x] 选课学员表修改,增加两个字段,一是是否已支付 payed,二是各学校的订单金额 money [x] go model 增加字段 [x] go 更新学员是否已支付的接口。TmUpdateUser2Pay [x] Excel 导出时,增加字段 [x] Excel 导入模板,增加 rank 字段 [x] 改成6秒。昨天改成6秒以后,今天300多个订单,有三十个不成功的 [x] antd pro 增加字段 [x] 插件,在点击支付之 ...

阅读全文...

2021年选课插件,自动把指定的会计课程加到购物车

继续 tampermonkey 实现,感觉比较简单,一个晚上差不多就能实现。 选课插件需求 那个选课插件、如果做一个最简单的、就是把指定的课程加到购物车就行了、可好做?不需要提交订单 手工登录就行 只做2021年的 分二类人:一类人员选第二套课程;二类学员选第一套课程 三年都做更好。其他2年的少、我手工选也行 原有逻辑的调整 done 复制一份,重命名为 “_指定课程” done 保留收集 done 去掉网校选择 done 去掉个人信息处理 done 去掉提交订单 done 去掉退出登录 保留年份:map 年份 & 分类,对应不同课程 保留分类:一类、二类 ...

阅读全文...

网校自动选课软件

扫描所有课程,记录其所属的网校。前面几节课随机选,快超过学时了,就选几个学时少的课程。 目的是减少每次选课人工计算的时间。 界面上配置的规则有 学员类别 年度 哪个网校 年度主要是2019-2021年三年、 课程有2种情况的人员 一种人员公需课不低于15学时、专业课不低于30学时、在这上面、学时尽量别超的多、因为按学时付费 另一种人员公需课不低于10学时、专业课不低于20学时 添加执行逻辑 点击开始 如果没有选择三项,提示 过滤一轮所有课程,排除不符合条件的。 同时将符合条件的分为两个不同分类, 不同分类下再分为不同学校。 从符合条件的里面,随机抽取,直到满足学分 然后逐一添加课程 完成后 ...

阅读全文...

继续教育网校在线作业自动学习视频并答题, iframe 不触发逻辑问题

在用 tampermonkey 实现一个继续教育网校在线作业自动学习视频并答题的程序,一切都运行正常。 唯一遇到的是在答题时,题目是在一个 iframe 嵌 iframe 里的,此时脚本就没有触发执行。 非常诡异,只有这一个 iframe 没有触发,而其他的均触发了。 搞了近一个小时没有头绪,本以为是 tampermonkey 的限制,后来仔细看浏览器的网络请求,发现原理这个 iframe 做了两次 302 重定向跳转,怪不得没有触发。 改成最终的跳转地址就可以自动答题了。 总结 不要只盯着 iframe 的 src 地址看,还得看网络请求里的真实地址,确认没有重定向。 技巧及坑 在福建和安徽 ...

阅读全文...

tampermonkey 读取 iframe 中的数据,判断网校 PPT 自动翻页结束

由于网校学习课程中的 PPT 总页数只能通过 iframe 中的数据才能获取到,所以只能处理 iframe。 tampermonkey 读取 iframe 中数据的操作要点 iframe src 路径加入 tampermonkey match iframe 的 html 也不一定是即时加载的,所以有必要定时或者 set timeout 读取数据 iframe 与主页面的数据共享 GM_set GM_get 来实现数据共享。 ...

阅读全文...

vcam 解决继续教育网校在线考试没有摄像头问题

在写一个继续教育网校自动考试答题的程序,但是我的台式机上没有摄像头,就无法开始考试。 解决方法 使用 vcam 软件,即虚拟摄像头。找一张图片,或者视频导入 vcam,这时就可以开始考试了。 注意,需要使用360安全浏览器,或者其他国产浏览器。因为谷歌浏览器已经不再支持 flash,而考试摄像头功能就是 flash 做的。 同样适用于网考摄像头没有正常启用的情况。 ...

阅读全文...

继续教育网校在线作业自动答题,并导出题库

继续教育网校在线作业做到自动答题其实很容易。 答案收集 只需要使用 tampermonkey,每次提交在线作业,然后收集题干和答案, 使用 gm_setValue 保存到 Chrome 的本地数据存储 levelDB 中即可。 key 为题干,value 为答案。这里的答案不做格式转换,方便导出时的可读性。 考题自动找答案 遍历所有考题,gm_getValue 获取答案即可。 注意,模拟点击的时候,设置 timeout,否则后台服务器响应不过来,容易造成答案丢失。 特别是多选题,容易出现此问题。 判定是否合格 全局设置可接受的错题数,e.g. 1题、2题。 实际上,经测试无此必要,即便要达到满 ...

阅读全文...

网校自动挂学时,Tampermonkey 点击 alert 弹窗中的确定按钮

在做一个成人自考网校的自动学习、挂学时插件,但是在提交问题答案的时候,会弹出一个 alert 窗口,点击确定按钮之后,才能提交。 alert 窗口与普通的网页还是有区别的,因为无法在浏览器 console 中查看,所以也就无法采用 document.querySelector 的方式进行自动 click 处理。 所以,要实现自动答题,就得能绕过这个 alert 确认窗口。 实现方法 覆盖 window.alert 方法: @grant unsafeWindow unsafeWindow.alert = function(){return false}; window.alert ...

阅读全文...

tampermonkey onclick 无效,显示 xxx is not defined

使用 tampermonkey 在当前网页中添加了一个按钮,用于手动触发自动化逻辑。 <button id="tm_btn" onclick="do_something()">开始抢购</button> do_something 函数,是我在 tampermonkey 脚本中定义的函数。 但是,点击按钮之后,报错: Uncaught ReferenceError: do_something is not defined at HTMLButtonElement.onclick 为何会找不到函数定义 原因是,tamper ...

阅读全文...

tampermonkey 上传 Blob 文件到其他服务器,multipart/form-data 版

application/octet-stream 版本的缺陷: 无法增加多余参数。例如,我想顺便传递用户名,就没法增加字段了 搜了半天没找到 Spring Boot 读取 application/octet-stream 的实现。。。 所以干脆想尝试 multipart/form-data 版。 Java Spring Boot 如何获取 application/octet-stream 二进制数据 { "timestamp": "Feb 1, 2021, 03:18:55 PM", "status": 415, ...

阅读全文...

tampermonkey 上传 Blob 文件到其他服务器,application/octet-stream 版

例如,我想将 https://www.sunzhongwei.com 网页中下载到的 Excel 文件,上传到其他服务器。这里以 http://localhost:5000 为本地测试环境。 tampermonkey 中是否可以使用 fetch / jQuery ajax 还是必须使用 GM_xmlhttpRequest ? 测试了一下,用 fetch 确实不行,必须使用 GM_xmlhttpRequest 。 以下是使用 fetch 的报错信息,估计使用 jquery ajax 也是同样的结果。 Access to fetch at 'http://localhost:5000/' from ...

阅读全文...

tampermonkey 代码规范与组织结构

修改几年前给媳妇写的一个 tampermonkey 自动挂会计网校学时的插件。由于只是网校的页面做了些许修改,其实代码需要调整的地方不多。但是发现已经看不懂了,逻辑混乱,无从下手。 赶上元旦假期,时间充裕,所以思考了一下,怎样组织 tampermonkey 的代码,可读性更高,最好能形成代码规范,以后再调整时,可以瞬间秒懂。 代码结构 分成三大部分,之间用注释块隔开。 全局配置变量 自动逻辑。引入类 route 机制,多页面逻辑清晰。 公用函数 多文件还是单文件 例如要在一个网站里,多个页面间跳转,还是单文件比较好。原因: 逻辑清晰 函数可复用 可复用代码 还是做 vim snippe ...

阅读全文...

tampermonkey 跨域名共享数据的方法

在使用 tampermonkey 挂学时时,遇到一个问题。课程列表页与视频页所属不同二级域名,导致这两个页面对应的 tm 脚本无法共享 cookie。 在查解决方案时,查到 tm 自带的 gm set get value 函数,可以跨域共享数据,但前提是读写都在一个 tm 脚本中。 参考: http://greasemonkey.win-start.de/advanced/gm_getvalue.html Data stored with GM_setValue and retrieved with GM_getValue are similar to browser cookies, bu ...

阅读全文...

tampermonkey 悬浮框显示状态面板

在写 tampermonkey 网页工具时,经常会用 console log 来输出状态日志,方便了解进度,或者调试。 但是对于普通用户来说,这不太友好。还是能将进度信息显示在页面上比较直观。特别是对于用来自动挂学时的插件来说,没有这个状态显示,你很难知道插件是否因为页面改版导致挂了。。。 所以参考了一个网上的脚本,写了一个测试程序。功能是,记录在当前页面停留了多长时间。 以百度首页为例,这个悬浮框状态面板会显示在页面右下角,每秒更新。 这个 div 还是透明的,也不影响正常浏览。 测试代码 // ==UserScript== // @name test_status_win ...

阅读全文...