当AI学会"借书":Literature Request 文献求助技能介绍
当AI学会"借书":文献求助技能的诞生
学术研究中,获取论文全文往往是令人头疼的一环。你找到了关键参考文献的DOI,却发现它藏在付费墙后面;你在Google Scholar上搜到了标题,却只能看到摘要。传统做法是:打开SPIS平台→手动输入标题→填写邮箱→勾选协议→提交——每篇至少2分钟。如果参考文献有20篇呢?
这就是Literature Request(文献求助)技能要解决的问题。
它是什么?
Literature Request 是一个为 Claude Code 设计的自动化技能,专门针对国内常用的 SPIS 文献互助平台(spis.hnlat.com)。它通过 Chrome DevTools Protocol (CDP) 直接操控浏览器,实现从搜索文献到提交求助的全流程自动化。
核心能力:
- 一键求助:只需提供文献标题或DOI,自动完成搜索、表单填写和提交
- 批量处理:支持从JSON文件加载文献列表,批量提交求助请求
- 独立运行:不依赖其他联网技能,自包含CDP操作指令和自动化脚本
- 智能邮箱策略:自动从环境变量、上下文记忆中获取接收邮箱
技术挑战:与React表单的博弈
SPIS 平台是一个 React 单页应用,这意味着传统的表单填充方式(直接设置 input.value)完全无效——React 的状态管理系统不会感知到 DOM 属性的直接修改。
技能开发过程中攻克了三个关键技术难点:
1. React 输入框处理:使用 JavaScript 的 Object.getOwnPropertyDescriptor 劫持 HTMLInputElement 的原生 value setter,再通过 dispatchEvent 触发 React 的合成事件系统,让框架"相信"用户真的输入了内容。
2. 服务条款复选框:SPIS 改版后,复选框变为 hidden input + 自定义 label 结构。直接对隐藏的 input 调用 .click() 在 Headless Chrome 中无法触发 React 状态更新。解决方案是定位到可见的 .reason-checkbox label 元素并点击它,再验证 .hidden-checkbox.checked 状态。
3. 成功判断逻辑:不再仅凭"模态框关闭"判断成功,而是通过检测页面中的关键词("求助成功"、"7日内已经求助过")来明确状态分类,对不确定的情况增加5秒二次确认。
实战表现
经过多轮迭代优化,该技能已实现:
- 2026-03-30:18篇文献 100% 提交成功
- 2026-04-15:12篇文献批量求助(10篇成功,2篇平台未收录)
- 2026-05-09:修复SPIS改版后的checkbox交互问题,4篇文献全部成功
每篇文献处理时间约15-20秒,PDF下载链接在5-10分钟内发送至邮箱。
与其他技能的协作
Literature Request 不是孤立的——它被设计为学术研究工作流中的一环:
- 配合 scholar-search 搜索文献并生成求助列表
- 配合 semantic-scholar 检查开放获取状态,仅对非OA论文发起求助
- 配合 zotero 将下载的PDF自动导入文献管理库
开源与使用
技能已开源,安装后可直接在 Claude Code 对话中使用:
- "帮我从SPIS求助这篇论文:Deep Learning"
- "下载这篇文章并发送到我的邮箱:[DOI]"
- "批量求助文献列表中的20篇论文"
前置条件:Chrome 需开启远程调试(chrome://inspect/#remote-debugging),系统需安装 Node.js 22+。
该技能体现了 AI 辅助学术研究的一个重要方向:不是替代研究者,而是消除那些机械、重复的操作瓶颈——让研究者把时间花在阅读和思考上,而不是在网页表单之间来回切换。
相关资源
技能源码与文档打包下载:literature-request.zip (22 KB)
SPIS 文献互助平台:https://spis.hnlat.com/