Journal Paper Toolkit
将三个能力串联为一条 Agent 可执行流水线:
| 阶段 | 工具 | 职责 |
|---|---|---|
| ① 影响因子表 | convert_jcr_xls.py / build_journal_index.py |
从用户 JCR Excel 生成本地索引(约 2.2 万 SCI 期刊) |
| ② PubMed + IF 筛选 | search_pubmed.py |
主题检索、年份/类型过滤、按 IF/分区硬筛、导出 MD/CSV/BibTeX/DOI |
| ③ 跨库扩展 | academic-search skill | Semantic Scholar、OpenAlex、Crossref、Unpaywall、系统综述/PRISMA |
| ④ PDF 清单 | make_pdf_manifest.py |
合并 IF 信息,生成可审计的 PDF 下载 manifest |
| ⑤ PDF 下载 | ScanSci PDF CLI | OA → 出版商 API → 机构登录 → 批量落盘 |
技能根目录:~/.cursor/skills/journal-paper-toolkit(或本仓库 journal-paper-toolkit/)
前置安装
# 复制到 Cursor skills 目录
Copy-Item -Recurse journal-paper-toolkit "$env:USERPROFILE\.cursor\skills\journal-paper-toolkit"
pip install -r journal-paper-toolkit/requirements.txt
pip install "scansci-pdf[cloakbrowser]"
scansci-pdf check
# academic-search(若未安装)
npx skills add ustc-ai4science/academic-search -g -y
JCR 数据源(用户本地,不提交 Git):
C:\Users\MI\Desktop\副本2026SCI期刊影响因子.xls
一键流水线
cd journal-paper-toolkit
# 完整流程:初始化 JCR -> PubMed 检索 -> 生成 manifest -> 准备 ScanSci 批次
python scripts/run_pipeline.py run-all `
--terms "air pollution" "childhood asthma" `
--mode AND `
--year-from 2020 --year-to 2026 `
--min-if 5 `
--quartile Q1 `
--max 30 `
--work-dir ../work
输出在 work/:
litsearch_results/results.md— 排序表格litsearch_results/dois.txt— DOI 列表pdf_manifest.csv— PDF 下载清单(含 IF/分区)scansci_batch/doi_batch.txt— 供 ScanSci 批量下载
分步执行
阶段 0:准备影响因子表
python scripts/run_pipeline.py init --work-dir ../work
或分别运行:
python scripts/convert_jcr_xls.py "C:\Users\MI\Desktop\副本2026SCI期刊影响因子.xls"
python scripts/build_journal_index.py --input "C:\Users\MI\Desktop\副本2026SCI期刊影响因子.xls" --output ../work/journal_index.json
阶段 1:PubMed 检索 + IF 筛选
先与用户确认:主题词、年份、研究类型、IF 门槛(不限 / IF≥5 / IF≥10 / 仅 Q1)。
python 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 "../work/litsearch_results"
筛选规则:指定 --min-if 或 --quartile 时,不在 JCR 表中的期刊会被剔除。
阶段 2:跨库扩展(academic-search)
当 PubMed + IF 筛选结果不足,或需要引用数/OA 状态时:
- 读取
~/.cursor/skills/academic-search/SKILL.md - 在 Semantic Scholar / OpenAlex 扩展 query(2–3 个互补 query)
- 用 DOI/PMID 与阶段 1 结果去重合并
- 将新 DOI 追加到 manifest 或
dois.txt
阶段 3:生成 PDF 下载清单
python scripts/run_pipeline.py manifest --work-dir ../work
阶段 4:批量下载 PDF(ScanSci PDF)
python scripts/run_pipeline.py batch --work-dir ../work
python scripts/run_pipeline.py download --work-dir ../work --output D:\papers
或直接:
scansci-pdf batch "../work/scansci_batch/doi_batch.txt" --output "D:\papers"
机构访问(按需):
scansci-pdf elsevier-setup --api-key YOUR_KEY
scansci-pdf login --url https://www.sciencedirect.com/
典型 Agent 工作流
A. 「找 IF>5 的队列研究并下载」
run_pipeline.py initrun_pipeline.py search --terms ... --min-if 5 --types cohort- 展示
results.md给用户确认 run_pipeline.py manifest→batch→download
B. 「扩展检索 + 引用排序 + 下载」
- academic-search 在 S2/OpenAlex 扩展并导出 DOI
- 与 PubMed 结果按 DOI 去重
make_pdf_manifest.py用 JCR 表做 IF 后筛- ScanSci 批量下载
C. 「系统综述 / PRISMA」
- academic-search 主导检索与筛选记录
- 本 toolkit 的 JCR 表用于期刊质量分层
- ScanSci 下载纳入文献全文
配置清单
| 项 | 必填 | 说明 |
|---|---|---|
| NCBI Email | 建议 | --email 或环境变量 NCBI_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
边界说明
- academic-search:只下载合法开放获取 PDF,生成 manifest。
- scansci-pdf:多源下载(含机构登录、Sci-Hub 等),由用户自行承担合规责任。
- 批量下载前应先向用户展示 manifest 并确认。