基本概念

易班优课YOOC:优课YOOC”是易班网于2016年4月研发并推出的基于Social Learning的理念而开发的在线学习平台。

官方网站:https://www.yooc.me/

问题分析

考试信息

题目ID

答案隐藏脚本

解决方案

注:本脚本基于考试详情页面

例:https://www.yooc.me/group/16x263/exam/11067x/detail

获取题目DOM

利用AJAX重新请求页面,绕开答案隐藏脚本。

var xmlhttp = new XMLHttpRequest();//获取对象xmlhttp.onreadystatechange = function(){//设置回调函数if(xmlhttp.readyState == 4){//这里的4是请求的状态码,代表请求已经完成if(xmlhttp.status == 200 || xmlhttp.status == 304){//这里是获得响应的状态码,200代表成功,304代表无修改可以直接从缓存中读取console.log(xmlhttp);var x=parseToDOM(xmlhttp.responseText)var html=document.createElement("html");html.innerHTML=xmlhttp.responseTextconsole.log(html)var question=html.getElementsByClassName('question-board')console.log(question)}}}
xmlhttp.open("GET",document.URL);xmlhttp.send();//GET请

题目DOM转数组

         var question_arr=[]question.forEach(q=>{question_arr.push({id:q.id,question:q.outerHTML})})

封装数据包

         var data={group:groupId,exam:examId,questions:question_arr}

上传数据库

                        var posthttp = new XMLHttpRequest();//获取对象posthttp.onreadystatechange = function(){//设置回调函数if(posthttp.readyState == 4)//这里的4是请求的状态码,代表请求已经完成if(posthttp.status == 200 || posthttp.status == 304){//这里是获得响应的状态码,200代表成功,304代表无修改可以直接从缓存中读取var result = posthttp.responseText;//这里获取的是响应文本,也可以获得响应xml或JSONconsole.log(result)}}posthttp.open("POST","https://www.xxxx.top/MyZSTU/exams");posthttp.setRequestHeader("Content-Type","application/json");posthttp.setRequestHeader("Content-Security-Policy","upgrade-insecure-requests");posthttp.send(JSON.stringify(data));//POST请求

完整代码

var xmlhttp = new XMLHttpRequest();//获取对象xmlhttp.onreadystatechange = function(){//设置回调函数if(xmlhttp.readyState == 4){//这里的4是请求的状态码,代表请求已经完成if(xmlhttp.status == 200 || xmlhttp.status == 304){//这里是获得响应的状态码,200代表成功,304代表无修改可以直接从缓存中读取console.log(xmlhttp);//创建DOMvar html=document.createElement("html");html.innerHTML=xmlhttp.responseTextconsole.log(html)var group=document.getElementById('group-data')var groupId=group.getAttribute("data-group-id")var examId=group.getAttribute("data-exam-id")var question=Array.from(html.getElementsByClassName('question-board'))console.log(question)//答案转换var question_arr=[]question.forEach(q=>{question_arr.push({id:q.id,question:q.outerHTML})})//数据封装var data={group:groupId,exam:examId,questions:question_arr}console.log(data)//上传服务器var posthttp = new XMLHttpRequest();//获取对象posthttp.onreadystatechange = function(){//设置回调函数if(posthttp.readyState == 4)//这里的4是请求的状态码,代表请求已经完成if(posthttp.status == 200 || posthttp.status == 304){//这里是获得响应的状态码,200代表成功,304代表无修改可以直接从缓存中读取var result = posthttp.responseText;//这里获取的是响应文本,也可以获得响应xml或JSONconsole.log(result)}}posthttp.open("POST","https://www.sxxxxng.top/MyZSTU/exxaamaass");//JSON Headerposthttp.setRequestHeader("Content-Type","application/json");posthttp.setRequestHeader("Content-Security-Policy","upgrade-insecure-requests");//解析为JSONposthttp.send(JSON.stringify(data));//POST请求}}}
xmlhttp.open("GET",document.URL);xmlhttp.send();//GET请求

参考文章

https://blog.csdn.net/zzh_97580460/article/details/99934372

https://blog.csdn.net/weixin_43272781/article/details/105774421

http://caibaojian.com/javascript/107.html

JavaScript——易班优课YOOC课群在线测试自动答题解决方案(一)答案获取相关推荐

  1. JavaScript——易班优课YOOC课群在线测试自动答题解决方案(四)答案显示

    前文 JavaScript--易班优课YOOC课群在线测试自动答题解决方案(一)答案获取 Spring Boot--易班优课YOOC课群在线测试自动答题解决方案(二)答案储存 Spring Boot- ...

  2. Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(三)答案查询

    前文 JavaScript--易班优课YOOC课群在线测试自动答题解决方案(一)答案获取 Spring Boot--易班优课YOOC课群在线测试自动答题解决方案(二)答案储存 问题分析 Maven & ...

  3. Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(二)答案储存

    前文 JavaScript--易班优课YOOC课群在线测试自动答题解决方案(一)答案获取 问题分析 前端数据 Maven <!--Spring Boot Web--><depende ...

  4. JavaScript——易班优课YOOC课群在线测试自动答题解决方案(十九)强制重做

    前文 JavaScript--易班优课YOOC课群在线测试自动答题解决方案(一)答案获取 Spring Boot--易班优课YOOC课群在线测试自动答题解决方案(二)答案储存 Spring Boot- ...

  5. JavaScript + Thymeleaf + Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(十八)模板脚本

    前文 JavaScript--易班优课YOOC课群在线测试自动答题解决方案(一)答案获取 Spring Boot--易班优课YOOC课群在线测试自动答题解决方案(二)答案储存 Spring Boot- ...

  6. JavaScript + Tampermonkey——易班优课YOOC课群在线测试自动答题解决方案(十七)复合型解决方案油猴脚本

    前文 JavaScript--易班优课YOOC课群在线测试自动答题解决方案(一)答案获取 Spring Boot--易班优课YOOC课群在线测试自动答题解决方案(二)答案储存 Spring Boot- ...

  7. JavaScript——易班优课YOOC课群在线测试自动答题解决方案(十六)利用PC端和移动端BUG

    前文 JavaScript--易班优课YOOC课群在线测试自动答题解决方案(一)答案获取 Spring Boot--易班优课YOOC课群在线测试自动答题解决方案(二)答案储存 Spring Boot- ...

  8. JavaScript——易班优课YOOC课群在线测试自动答题解决方案(十五)整合升级+引入jQuery

    前文 JavaScript--易班优课YOOC课群在线测试自动答题解决方案(一)答案获取 Spring Boot--易班优课YOOC课群在线测试自动答题解决方案(二)答案储存 Spring Boot- ...

  9. JavaScript——易班优课YOOC课群在线测试自动答题解决方案(十三)自动答题

    前文 JavaScript--易班优课YOOC课群在线测试自动答题解决方案(一)答案获取 Spring Boot--易班优课YOOC课群在线测试自动答题解决方案(二)答案储存 Spring Boot- ...

最新文章

  1. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 1.)(python/c/c++版)(笔记)
  2. 精致全景图 | 程序是如何运行起来的
  3. HDU 2602.Bone Collector-动态规划0-1背包
  4. C# DataTable的詳細用法
  5. Jar包冲突解决方法 Unknown lifecycle phase mvn Eclipse中执行maven命令
  6. WPF编程学习 —— 样式
  7. nurbs曲线拟合程序_基于NURBS曲线拟合的shx字体优化
  8. Chrome内核浏览器离线加装扩展的方法 IE Tab_v11.2.1.1
  9. python是爬虫的意思吗_python跟爬虫的区别
  10. 打印后台处理程序服务怎么开启
  11. 计算机语言与语法,编程语言中语法和语义有什么区别?
  12. PT100测量温度电路设计原理解析
  13. linux的c文件报错for,linux c 编译错误 conflicting types for 的解决办法
  14. 自媒体人必不可少的多平台同步、一文多发小助手
  15. Ubuntu(18.04)不能上网解决办法
  16. 万年历的Java代码
  17. IDEA新建项目需要新建好文件夹
  18. WIN10阻止OA附件打开
  19. 这个面试题有点意思哦
  20. 买的天猫转让网店怎么取名

热门文章

  1. CG笔记之一——透视投影
  2. php记录读取数据类型,数据读取 · ThinkPHP 3.2.3开发手册 · 看云
  3. 电脑功耗测试软件_聊一款“躺着都中枪”的笔记本电脑
  4. combus通讯_Vue兄弟组件通信Bus传值--小案例
  5. 7 MyBatis映射文件中的拼接符
  6. css列表格式属性,css list-style-type属性笔记
  7. java程序中可以有几个构造方法_java中多个构造方法可以相互引用么?
  8. 10 windows 启动虚拟机报错_Windows 系统如何安装 Docker
  9. nvidia-smi:Failed to initialize NVML: Driver/library version mismatch
  10. 期末考试前的预习,科目:化工设备与反应器(1)