学术文献检索与下载工作流
将三个能力串联为一条 Agent 可执行流水线:
| 阶段 | 工具 | 职责 |
|---|---|---|
| ① 影响因子表 | 本 skill convert_jcr_xls.py |
从用户 JCR Excel 生成本地 journals-if.csv(约 2.2 万 SCI 期刊) |
| ② PubMed + IF 筛选 | 本 skill search_pubmed.py |
主题检索、年份/类型过滤、按 IF/分区硬筛、导出 MD/CSV/BibTeX/DOI 列表 |
| ③ 跨库扩展 | academic-search skill | Semantic Scholar、OpenAlex、Crossref、Unpaywall、系统综述/PRISMA |
| ④ PDF 下载 | ScanSci PDF CLI | OA → 出版商 API → 机构登录 → 批量落盘 |
技能根目录:C:\Users\MI\.cursor\skills\academic-literature-workflow
前置安装
# 1. academic-search(已安装到 ~/.cursor/skills/academic-search)
# 来源: https://github.com/ustc-ai4science/academic-search
# 2. ScanSci PDF
pip install "scansci-pdf[cloakbrowser,instsci]"
scansci-pdf check
# 3. JCR 转换依赖(仅更新 Excel 时需要)
pip install -r requirements.txt
JCR 数据源(用户本地,不提交 Git):
C:\Users\MI\Desktop\副本2026SCI期刊影响因子.xls
阶段 0:准备影响因子表
首次使用或 Excel 更新后执行:
python "C:\Users\MI\.cursor\skills\academic-literature-workflow\scripts\convert_jcr_xls.py" `
"C:\Users\MI\Desktop\副本2026SCI期刊影响因子.xls"
输出:references/journals-if.csv(ISSN 优先匹配,其次刊名/缩写)
阶段 1:PubMed 检索 + IF 筛选
先与用户确认
- 主题词(建议英文;中文先翻译)
- 年份范围、研究类型
- IF 门槛(用 AskQuestion):不限 / IF≥5 / IF≥10 / 仅 Q1 / 自定义
运行检索
python "C:\Users\MI\.cursor\skills\academic-literature-workflow\scripts\search_pubmed.py" `
--terms "air pollution" "childhood asthma" `
--mode AND `
--year-from 2020 --year-to 2026 `
--types review meta-analysis `
--min-if 5 `
--quartile Q1 `
--max 80 `
--email "your@email.com" `
--out-dir ".\litsearch_results"
输出目录包含:
results.md— 排序表格 + 摘要results.csv/results.bib/results.jsondois.txt— 供 ScanSci 批量下载
筛选规则:指定 --min-if 或 --quartile 时,不在 JCR 表中的期刊会被剔除(无法判定 IF)。
阶段 2:跨库扩展(academic-search)
当 PubMed + IF 筛选结果不足,或需要引用数/OA 状态/系统综述时,叠加 academic-search:
- 读取
~/.cursor/skills/academic-search/SKILL.md - 在 Semantic Scholar / OpenAlex / Europe PMC 扩展 query(2–3 个互补 query)
- 第一遍输出轻量摘要表(标题、年份、venue、引用数、OA)
- 用 DOI/PMID 与阶段 1 结果去重合并
- 需要 PRISMA 时遵循
references/workflows/systematic-review.md
将新 DOI 追加到 dois.txt,或写入单独文件供下载。
阶段 3:批量下载 PDF(ScanSci PDF)
scansci-pdf batch ".\litsearch_results\dois.txt" --output "D:\papers"
单篇:
scansci-pdf get 10.1038/nature12373 --output "D:\papers"
机构访问(按需):
scansci-pdf elsevier-setup --api-key YOUR_KEY
scansci-pdf login --url https://www.sciencedirect.com/
典型 Agent 工作流
A. 「找 IF>5 的队列研究并下载」
convert_jcr_xls.py(若 CSV 不存在或 Excel 已更新)search_pubmed.py --min-if 5 --types cohort- 展示
results.md给用户确认 scansci-pdf batch dois.txt --output <目标目录>
B. 「扩展检索 + 引用排序 + 下载」
- academic-search 在 S2/OpenAlex 扩展并导出 DOI
- 与本 skill 的 PubMed 结果按 DOI 去重
- 可选:用 JCR 表对扩展结果做 IF 后筛(读 CSV 匹配 ISSN/刊名)
- ScanSci 批量下载
C. 「系统综述 / PRISMA」
- academic-search 主导检索与筛选记录
- 本 skill 的 JCR 表用于期刊质量分层
- ScanSci 下载纳入文献全文
配置清单
| 项 | 必填 | 说明 |
|---|---|---|
| NCBI Email | 建议 | --email 或环境变量 |
| NCBI API Key | 否 | 提速,环境变量 NCBI_API_KEY |
| JCR Excel | 是(首次) | 桌面 副本2026SCI期刊影响因子.xls |
| S2 API Key | 建议 | academic-search 跨库检索 |
| ScanSci | 下载时需要 | pip install scansci-pdf |
| Elsevier API | 否 | ScienceDirect 全文加速 |
外部仓库
- academic-search — Cursor Agent 学术检索
- scansci-pdf — PDF 下载 CLI / MCP