个人试卷导出助手
单文件用户脚本 · 当前版本 1.7.1

把组卷网、菁优网的整份试卷,一次导出成能直接打印的 Word 与 PDF

不用把题目一题一题复制粘贴,也不用截图拼版:在试卷页点一下浮球,题目、图片、公式、答案与解析一起进文档,排版按正式试卷来。

依赖:iPad 需要先在 Safari 里装好 Userscripts 扩展;安卓需要用支持用户脚本的浏览器(并已装脚本管理器)。脚本本身不用注册、不用登录第三方账号。

说明:脚本免费,不收集任何使用数据,也没有统计埋点。它只在一次操作里联网——你在面板里点「导出」时,才把这份试卷的内容发给云端通道用于生成文件;其余时间不发出任何请求。

01适用环境

同一份 .user.js 两端通用,区别只在「用哪个浏览器 + 靠什么来跑脚本」。

iPad

Safari + Userscripts 扩展

浏览器Safari
运行方式Userscripts 扩展(App Store 免费)负责加载脚本
安装动作在扩展里新增脚本 → 粘贴或导入 .user.js → 允许在组卷网 / 菁优网运行
容易卡住扩展权限没打开时,脚本装了也不会执行
看 iPad 分步安装 →
安卓

支持用户脚本的浏览器

浏览器支持用户脚本的浏览器(例如 Firefox 加装脚本管理器,或 Kiwi 这类支持扩展的浏览器)
运行方式浏览器 / 脚本管理器负责加载脚本
安装动作打开脚本文件链接 → 由脚本管理器接管并安装 → 确认在组卷网 / 菁优网启用
容易卡住打开 .user.js 没有弹出安装页,多半是脚本管理器没装或没启用
看安卓分步安装 →
匹配站点
组卷网(含移动站)、菁优网
脚本形态
单个 .user.js 文件,不需要安装包、不需要解压、不需要构建
使用前提
你能在浏览器里正常打开那份试卷页(需要登录的页面,得你自己先登录)

02功能

下面每一项都是脚本里已经做完的动作,写的是「它做什么、结果长什么样」。

抓题与识别补全

按题型分组把整份卷子的题目全部认出来(单选题、多选题、填空题、解答题各成一组),遇到成批漏认会继续往回补。结果:面板上直接告诉你「认了几道」。

图片真正内嵌

题目里的配图不是留一个网址,而是被取回后嵌进文档。结果:离线打开导出的文件,图还在原位置。

公式:Word 可编辑、PDF 为图形

公式转换后写进 Word 的是原生公式对象(OMML),双击就能改;PDF 里的公式是渲染出来的图形,任何工具都改不了——这是 PDF 格式本身的限制,不是脚本偷懒。

答案与解析三种导出方式

答案与解析本身能被识别出来,导出方式有三种:只导原卷(不带答案)、答案与解析附在卷尾、答案与解析跟在每题后面。

docx 与 PDF 双通道,失败自动降级

点导出后先走云端通道生成文件;超时、返回非 2xx、或返回的内容不是合法文件时,自动改用脚本本地生成,状态栏会写清这一次走的是哪条通道。

正式试卷排版

A4 纸面、标题居中、题型分组之间加细线、题号连续、图片居中、卷尾「参考答案与解析」另起一页、页脚带页码。结果:打印出来就是一份能直接发的卷子。

可拖动浮球与自适应面板

面板入口是一个圆形浮球,默认停在右下角;拖动它就拖动整块面板,面板按浮球所在的位置自动选择向左或向上展开,不会顶出屏幕外。

批量补全:10 题一批,带节流与缓存

需要补全的题目按 10 题一批处理,批与批之间留间隔、结果本地缓存,避免短时间内把站点请求打满。

诊断视图

导出前能看见这一份认出几道题、哪几道没认出来、哪几处公式是图片。结果:不用等到打开文档才发现少题。

遇到风控会停下并提示

碰到验证码、登录失效、阻断页这类情况,脚本停下并明确写出原因,不做任何绕过尝试。结果:你知道是站点拦了,而不是以为脚本坏了。

导出链路(云端优先,自动降级本地) 试卷页 抓题 + 识别补全 组稿 题干 / 选项 / 答案 云端通道 点导出时才发请求 本地降级 超时 / 非 2xx / 文件非法 Word / PDF 按试卷排版输出 状态栏会写明这一次实际走的是哪条通道。

两条通道的差别与各自限制,见下方常见问题「云端通道和本地降级有什么不一样」。

03安装

两条路径分开写,按「一步一个动作」的粒度,另开一页逐步说明,含常见卡点。

iPad:Safari + Userscripts

装扩展 → 打开扩展权限 → 新增脚本 → 粘贴或导入 .user.js → 允许在组卷网 / 菁优网运行。

打开 iPad 安装指南 →

安卓:支持用户脚本的浏览器

用支持的浏览器 → 装好脚本管理器 → 打开脚本文件链接并确认安装 → 在试卷页确认浮球出现。

打开安卓安装指南 →
装完发现没反应?先看安装指南里的「常见卡点」:Userscripts 没生效、扩展被关掉、脚本装了但页面不显示浮球,这三类各有对应排查步骤。 跳到卡点排查 →

04常见问题

这里写的是脚本真实的边界,包括做不到的部分。

公式为什么在 Word 里能编辑、在 PDF 里不能?

Word 的 .docx 里有「公式对象」这个概念,脚本会把题目里的公式转成 Word 原生的公式(OMML),所以双击就能改字、改上下标。PDF 格式里只有画好的图形和文字,没有公式语义,脚本写进去的就是一张渲染好的图——任何工具打开都改不了,只能重新导出。

图片抓不到的时候会怎样?

会在原位留下一个可见的占位框(写明「图片未能内嵌」),而不是静默地把图丢掉。诊断视图里也会提示哪几处公式是以图片形式存在的。这样你打开文档就能立刻发现,而不是打印出来才发现少图。

为什么有的卷子答案拿不到?

因为答案不在你能看到的那一页里。组卷网的个人电脑版试卷页,匿名访问时答案区就是一个空容器——不是被折叠起来等你点开,而是本来就没下发;真正的答案与解析在移动版页面随页面数据一起下发。所以脚本取答案时要走移动站这条路,会受浏览器跨域能力、站点风控和登录状态的影响:跨域被拦、被要求验证码、登录失效,都会导致答案拿不到,此时脚本会停下并写出原因。

云端通道和本地降级有什么不一样?

云端通道是把这份试卷的内容发到一个在线服务上生成文件,两端的机器都不用干活,但需要联网、也受那个服务的可用性限制。本地降级是脚本自己在浏览器里把文件拼出来,完全离线也能成,但设备算力有限、排版的精细程度不如云端。脚本的默认顺序是先云端、失败自动降级本地,并在状态栏写明这一次实际走的是哪条。

为什么免费后端有时抓不到外链图片?

云端通道跑在免费额度上,服务器本身没有浏览器环境,只能按网址去取图。有些图片地址在服务器侧取不到(需要登录态、有防盗链、或是被站点拦下),这类图就会走本地通道去补,或者在文档里留下占位框。这不是脚本坏了,是免费通道的能力边界。

脚本里有没有硬编码的令牌或者账号?

没有。脚本不写死任何令牌、密钥、cookie,也不需要你填任何激活码;它用的是你浏览器里本来就有的登录态。你在试卷页看到什么权限,它就有什么权限。

数据与隐私怎么算?

脚本不统计、不上报使用行为,没有埋点,也不会读取你的其它浏览记录。唯一的联网动作是:你点「导出」时,把这份试卷的内容(题干、选项、答案、解析)发给云端通道换回文件;如果你用的是本地通道,连这一次请求都不会发出去。除此之外它不做任何后台请求。

覆盖安装一个新版本,会不会丢配置?

不会。安装就是把 .user.js 的内容替换掉,Userscripts / 脚本管理器里其它脚本不受影响。脚本本身也没有需要你迁移的配置项——面板上的选项都在脚本内部设好了默认值,只有答案补全的结果会做本地缓存。

支持哪些站点?碰到别的站点会怎样?

目前支持组卷网(含移动站)与菁优网。脚本只在这些站点上运行;打开陌生域名的网页时,面板会显示「未知站点(域名)」,不会去猜结构、也不会尝试导出,避免给你一份错的东西。

抓到的题数不对怎么办?

先打开诊断视图看两个数字:「容器命中数」和「实际识别题数」。这两个数对不上就是识别出了问题,请把页面地址和这两个数字一起反馈。1.7.1 修的正是这个问题:页面上有 26 个题目容器,旧版本却只认了 3 题。

诊断提示「题号不连续(疑似漏题)」是什么意思?

这是目前已知的一处误报:组卷网整卷题号是全卷连续编号的,而诊断里的连续性判断是按「每个大题组从 1 重新开始」来算的,所以从第二个大题组起就会被判成漏题。它只影响提示文字,不影响识别出的题目数量,也不影响导出的内容。修它属于下一轮的事,这里如实写出来。

面板上出现的「未授权」功能是什么?

是脚本刻意保留的未实现项(对应另一个产品的服务端能力)。这些功能没有获得授权,所以界面直接标成不可用,也没有做成点了没反应的假按钮。你没有授权的东西,脚本不会假装有。

碰到验证码、登录失效、阻断页会怎么样?

脚本会停下,并在面板上写明是哪一类:需要验证码、登录已失效、还是被站点拦页。它不会去破解验证码、不会伪造身份、也不会反复重试硬闯。你处理完这些(手动过验证码、重新登录)再点一次就行。

05更新日志

按版本倒序,只写确认过的改动。早期版本没有逐条留档日期,所以这里不标注发布日期,也不补写记不清的条目。

1.7.1

修正识别不完整:26 个容器只认出 3 题

  • 根因:页面上每个题目各带一层 div.sec-list 包装,旧逻辑只取每个大题组里的第一个,于是每个大题组只剩下第 1 题。
  • 改为在整组范围内按文档顺序收全部题目容器,再按题型标题分桶,恢复大题组的完整结构。
  • 公开试卷页实测:19 个容器 → 认出 19 题;18 个容器 → 认出 18 题(同一页旧版本只能认出 1 题)。
  • 已知副作用(本轮未修):诊断里会提示「题号不连续(疑似漏题)」,只影响提示文字,不影响题目数量和导出内容。
1.7.0

界面收口:面板跟着浮球走

  • 浮球与面板合并为同一个可拖动容器:拖浮球即拖动整块面板,面板按浮球位置自动选择展开方向,并保证不越出屏幕。
  • 状态行精简,只显示当前站点(组卷网 / 菁优网 / 未知站点)。
  • 初始位置固定停在右下角,不再记忆上次拖动的位置。
1.6.0

修线上通道把公式压成纯文本的问题

  • 云端通道此前会把公式降级成纯文本,导出的 Word 里公式不再可编辑;本版改为上传时保留公式结构。
  • 答案与解析里的公式也一并纳入处理,不再被当纯文本对待。
1.5.0

排版、图片与 PDF 通道

  • 排版:文档里的西文统一 Times New Roman,正文按五号(10.5pt);Word 中的公式为原生公式对象,双击可编辑。
  • 图片:抓取失败时改为可见占位,不再静默丢图。
  • 新增「导出 PDF」:云端优先,失败降级本地。
  • 浮球支持拖动。

更早的版本(1.4.0 及之前)记录不完整,这里不追溯补写。

06下载

就是一个文件:个人试卷导出助手.user.js。

当前版本
1.7.1
文件形态
单个 .user.js 文本文件,版本号写在文件内部的 @version 里,文件名不带版本号
适用设备
iPad(Safari + Userscripts)与安卓(支持用户脚本的浏览器),同一个文件
下载没反应?
说明脚本文件还没和本页放在同一目录 —— 部署方法见「网站部署说明」

本页是静态站点,所有页面都能离线打开;页面本身不含任何统计代码、外部字体或外部脚本。