在线考试翻页抓取题目导出js

在线考试翻页抓取题目导出js

bash 复制代码
// 自动翻页 
(async function() {
  var ex = window.__kmsExamine;
  var total = 50;
  var allQuestions = [];

  for (var i = 0; i < total; i++) {
    // 直接读当前题数据
    var topic = ex.__currentExamTopic;
    if (topic) {
      allQuestions.push({
        order: i + 1,
        type: topic.typeNameText || topic.typeName,
        subject: topic.subject,
        options: topic.options || []
      });
      console.log('✓ 第' + (i+1) + '题: ' + (topic.subject||'').slice(0,20));
    }

    if (i < total - 1) {
      // 模拟点下一题
      ex.__jumpOrder = i + 1;
      ex.__jumpFdId = ex._fdId_;
      await new Promise(function(resolve) {
        // 拦截数据加载完成
        var origInit = ex.__initTopic__;
        // 直接点击下一题按钮
        document.querySelector('#lui-id-62, [title="下一题"]').click();
        setTimeout(resolve, 1200);
      });
    }
  }

  // 生成Word
  var html = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head><meta charset="utf-8"><style>body{font-family:宋体;font-size:12pt;line-height:2}.q{margin-bottom:16px}.qt{font-weight:bold}.op{margin-left:2em}</style></head><body><h2 style="text-align:center">26年交付体系制度考核-二次开发类</h2>';

  allQuestions.forEach(function(q) {
    html += '<div class="q"><div class="qt">' + q.order + '.【' + q.type + '】' + q.subject + '</div>';
    (q.options || []).forEach(function(opt) {
      html += '<div class="op">' + opt.value + '. ' + opt.text + '</div>';
    });
    html += '</div>';
  });
  html += '</body></html>';

  var blob = new Blob(['\ufeff' + html], {type: 'application/msword'});
  var a = document.createElement('a');
  a.href = URL.createObjectURL(blob);
  a.download = '考试题目.doc';
  a.click();

  console.log('✅ 完成!共' + allQuestions.length + '题');
  window.__examQuestions = allQuestions;
})();
相关推荐
码匠许师傅13 小时前
【C++三方组件】POCO:跨平台系统编程全家桶
开发语言·c++
米米商聊13 小时前
同名附件为什么被 Map 覆盖?重复键与一对多索引
前端·javascript
bkspiderx13 小时前
基于Socket的广播通信及C语言实现详解
c语言·开发语言·socket·广播·socket的广播通信
小王C语言13 小时前
Qt常用控件:输入类控件,单行/多行输入框、下拉框、(日期)微调框、旋钮、滑动条
开发语言·qt
ESDWAN13 小时前
SD-WAN 主备切换为什么仍然会断网?从检测机制到会话恢复分析
开发语言·php
1001101_QIA14 小时前
.exe does not seem to be a Qt executable.
开发语言·qt
echome88814 小时前
Python 异常处理:try、else、finally 的正确搭配
开发语言·前端·python·异常处理·编程技巧
云和数据.ChenGuang14 小时前
Python 单继承与多继承深度剖析:从 MRO 到实战取舍
开发语言·人工智能·python·langchain
时间的情敌14 小时前
OpenLayers 实战|Vue3 + OpenLayers 完整工程案例(加载天地图、要素、弹窗、绘制、WFS)
前端·openlayers
陈随易14 小时前
下载神器!Motrix 停更三年后重写回归
前端·后端·程序员