悬壶自动刷

Created at 11 hours ago
Updated at 11 hours ago
人卫智网增值服务练习题批量获取与LLM自动答题工具
#学习辅助
#在线教育
#题库
#AI辅助
Total Installs
8
Today's New
+9
User Rating
- / 5.0 (0)
Current Version
1.1.0
Script Details
Applicable Sites
LicenseMIT
人卫智网医学练习题批量提取与LLM自动答题工具,支持交卷后获取答案解析并导出HTML

悬壶自动刷

人卫智网增值服务练习题批量获取与 LLM 自动答题工具

License: MIT
Greasy Fork
GitHub
Gitee
ScriptCat


📖 目录


这是什么

悬壶自动刷 是一个运行在浏览器中的油猴脚本(Tampermonkey Script),专门用于 人卫智网增值服务 的练习题页面。

它可以:

  • 📋 一键提取 页面上的所有题目、选项
  • 📝 交卷后提取 包含正确答案和解析的完整数据
  • 🤖 调用 AI 大模型 自动答题(支持 DeepSeek、小米 MiMo、GPT 等)
  • 📄 导出为 HTML 文件,可在浏览器中查看或打印为 PDF

⚠️ 适用范围:仅适用于人卫智网的"增值服务"→"本章目标测试"等练习题页面。


快速开始

第一步:安装脚本管理器

脚本需要一个"脚本管理器"来运行。推荐使用 Tampermonkey(油猴)。

浏览器 安装方式
Chrome / Edge Tampermonkey 官网 → 点击"下载" → 安装浏览器扩展
Firefox Tampermonkey for Firefox
Safari Tampermonkey for Safari

安装完成后,浏览器右上角会出现 Tampermonkey 的黑色图标。

第二步:安装脚本

从以下任一平台安装(点击链接即可一键安装):

手动安装方法(如果一键安装失败):

  1. 点击浏览器右上角的 Tampermonkey 图标
  2. 选择"添加新脚本"
  3. 删除编辑器中的所有内容
  4. xuanhu-auto.user.js 的内容粘贴进去
  5. Ctrl + S 保存

第三步:使用脚本

  1. 打开 人卫智网,登录你的账号
  2. 进入某本书的"本章目标测试"页面
  3. 页面右上角会自动出现 「📚 悬壶自动刷」 悬浮窗
  4. 根据需要选择功能(详见下方)

功能说明

手动提取题目

适用场景:你只是想把题目导出来复习,不需要答案。

  1. 在答题页面,点击 「📋 一键提取全部题目」
  2. 脚本会自动逐题翻页,提取题干和选项
  3. 提取完成后,点击 「📄 下载为 .html 文件」

交卷并提取答案解析

适用场景:你已经做完题(或不在意交卷),想获取完整数据。

  1. 点击 「📝 交卷并提取答案解析」
  2. 脚本会自动交卷 → 等待答案页面加载 → 提取全部数据
  3. 提取完成后,下载 HTML 文件即可

💡 提示:交卷后也可以手动点击「📋 一键提取全部题目」,脚本会自动识别答案页面。

LLM 自动答题

适用场景:让 AI 帮你做题。

  1. 展开 「🤖 LLM自动答题」 配置区域
  2. 填写 API 地址、API Key、模型名称(详见 LLM 模型配置指南
  3. 选择一个模式:
    • 「🤖 LLM自动答题」:AI 逐题作答,答完后你可以检查再手动交卷
    • 「🤖 LLM答题并交卷提取」:AI 答完自动交卷并提取数据(一条龙)
  4. 点击 「⏹ 停止」 可随时中止

导出文件

  • HTML 文件:带样式排版,可直接在浏览器中查看
  • 在 HTML 页面按 Ctrl + P 可打印为 PDF
  • 文件名支持自定义,在「📝 文件名称」输入框中修改即可

LLM 模型配置指南

脚本兼容所有 OpenAI API 格式 的模型服务。

推荐免费/低价模型

平台 模型 API 地址 说明
DeepSeek deepseek-chat https://api.deepseek.com/v1 性价比极高
小米 MiMo mimo-v2.5-pro https://api.mimo.ai/v1 免费额度,自带思考
阿里通义 qwen-plus https://dashscope.aliyuncs.com/compatible-mode/v1 有免费额度
硅基流动 Qwen/Qwen2.5-7B-Instruct https://api.siliconflow.cn/v1 免费模型
七牛云 z-ai/glm-4.5-air-free https://api.qnaigc.com/v1 免费模型

⚠️ 部分免费模型可能有速率限制或响应较慢,请耐心等待。

配置步骤

DeepSeek 为例:

  1. 注册 DeepSeek 开放平台
  2. 在"API Keys"页面创建一个 Key(以 sk- 开头)
  3. 在脚本的 LLM 配置区域填写:
    • API 地址https://api.deepseek.com/v1
    • API Keysk-xxxxxxxxxxxxxxxx
    • 模型名称deepseek-chat
  4. 不需要勾选"思考模式"

如果使用 小米 MiMo 等自带思考的模型:

  • API 地址https://api.mimo.ai/v1(以实际平台为准)
  • 模型名称mimo-v2.5-pro
  • 勾选「启用思考模式」(部分模型必须勾选才不会报错 400)

常见问题

Q:脚本面板没有出现?

  • 确认 Tampermonkey 已启用(图标不应是灰色)
  • 确认脚本已启用(Tampermonkey 面板 → 已安装脚本 → 检查开关)
  • 确认页面 URL 包含 zengzhi.ipmph.com/answer/

Q:提取的题目数量不对?

  • 确认题目页面已完全加载
  • 如果在答题页面提取,脚本会逐题翻页,速度取决于题目数量
  • 建议使用「交卷并提取」功能,一次性获取全部数据

Q:LLM 自动答题没有选择答案?

  • 检查 F12 控制台是否有错误信息
  • 确认 API Key 有效且有余额
  • 尝试更换模型(部分模型可能不兼容)
  • 如果是小米 MiMo 等模型,确保勾选了「启用思考模式」

Q:所有题都选了同一个选项?

  • 通常是 LLM 返回了思考过程文本,答案被截断
  • 增大 max_tokens(脚本已默认设为 1000)
  • 尝试更换模型

Q:导出的 HTML 打不开?

  • 使用浏览器直接打开 .html 文件即可
  • 如果需要 PDF,在浏览器中按 Ctrl + P → 选择"另存为 PDF"

技术实现

整体架构

用户浏览器
├── Tampermonkey(脚本管理器)
│   └── 悬壶自动刷.user.js
│       ├── UI 层:浮动控制面板
│       ├── 业务层:题目提取、答案解析、自动答题
│       ├── 通信层:GM_xmlhttpRequest 调用 LLM API
│       └── 输出层:HTML 文件生成与下载
└── 人卫智网页面(Vue 2 + Vant UI)
    ├── 外层页面:zengzhi.ipmph.com
    └── 内层 iframe:zengzhi.ipmph.com/answer/

核心技术点

1. 页面结构分析

人卫智网采用 Vue 2 + Vant UI 框架,题目页面嵌套在 iframe 中(同源)。题目容器使用以下 CSS 类名:

  • 单选题:.singleChoice
  • 多选题:.multiChoice
  • 判断题:.judgmentQuestion
  • 选项:.anwserItem(注意:网站拼写为 anwser)

2. 答案页面一次性提取

交卷后,所有题目、正确答案、解析会渲染在同一页面上,无需逐题翻页。脚本通过检测 .answer .right 元素判断当前是否为答案页面。

3. Vue 组件交互

Vant 的 Radio/Checkbox 组件通过 Vue 响应式系统管理状态。脚本通过访问 DOM 元素的 __vue__ 属性获取 Vue 组件实例,然后通过 group.$emit('input', value) 直接设置选中值,绕过了事件模拟的兼容性问题。

4. LLM 调用

使用 Tampermonkey 的 GM_xmlhttpRequest 跨域请求 OpenAI 兼容 API。支持:

  • 标准 content 字段
  • 思考模型的 reasoning_content 字段
  • stream: false 模式(兼容不支持流式输出的免费模型)

5. 答案解析策略

针对思考模型返回长文本的特点,采用从末尾往前扫描的策略提取答案,避免被选项列表中的字母干扰。

文件结构

xuanhu-auto/
├── xuanhu-auto.user.js    # 油猴脚本主文件
├── README.md               # 本文档
├── LICENSE                 # MIT 开源协议
└── .workbuddy/             # 开发辅助文件(可忽略)

免责声明

使用者知悉并承诺

使用本脚本即表示您已完整阅读、充分理解并自愿同意以下全部条款:

1. 技术学习目的

本脚本完全基于 JavaScript 编程语言的学习与技术交流之目的开发,开发者从未以任何形式鼓励、诱导或帮助任何使用者侵犯他人知识产权。

2. 使用者行为责任

使用者须明确知悉,通过本脚本获取的任何内容(包括但不限于试题、文本)的知识产权均归原权利方(人民卫生出版社)所有。使用者承诺仅将本脚本用于合法的、非商业的本地技术测试环境,并应在测试完成后立即删除任何获取的临时数据。

3. 风险自担与责任排除

使用者已知悉本脚本可能违反目标网站的《用户服务协议》,并自愿承担因使用本脚本而可能引发的一切法律风险、账号封禁、数据丢失等后果。开发者不对因使用本脚本而产生的任何直接或间接损失承担法律责任,一切由本脚本引发的侵权及合规风险,均由使用者本人独立承担。


开源协议

本项目基于 MIT License 开源。

MIT License

Copyright (c) 2026 WorkBuddy

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

相关链接

平台 链接
GitHub https://github.com/GeorgeChou17/xuanshu-auto
Gitee https://gitee.com/georgechou17/xuanhu-auto
Greasy Fork https://greasyfork.org/zh-CN/scripts/583004-%E6%82%AC%E5%A3%B6%E8%87%AA%E5%8A%A8%E5%88%B7
ScriptCat 脚本猫 https://scriptcat.org/zh-CN/script-show-page/6682
问题反馈 https://github.com/GeorgeChou17/xuanshu-auto/issues