夜雨聆风学习资料网

ARTICLE · 1153739

【WorkBuddy应用】学术论文自动下载助手Skill(academic-fulltext-fetcher)

【WorkBuddy应用】学术论文自动下载助手Skill(academic-fulltext-fetcher)

学术论文自动下载助手技能应在研究人员需要自动化地从免费/合法来源查找、下载并归档学术论文全文PDF时使用。它解析论文线索(一个DOI、"标题 | 作者 | 年份"字符串,或 .txt/.csv/.xlsx 列表),按合规优先的顺序探测各渠道(OpenAlex、Unpaywall、Semantic Scholar、DOAJ、Europe PMC、Crossref 出版商链接、arXiv 预印本),下载并校验每个PDF,按规范化DOI去重,并输出带有来源信任级别的 manifest.csv。Sci-Hub 类的镜像源默认关闭,仅在找不到合法开放获取版本、且用户明确启用 allow_mirror 时,才作为最后手段介入。触发词包括"下载这篇论文全文""批量下文献""找开源全文""把 DOI 列表转PDF""academic fulltext""OA 下载""论文归档"。

WorkBuddy安装方法:将提示词发送给你的 AI 安装该 skills

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_18c72336/academic-fulltext-fetcher。


一、它解决什么问题

研究者常需要批量获取中英文论文全文,但付费墙与低效的手动检索是痛点。本工具把「找源 → 下载 → 校验 → 归档 → 去重 → 出清单」固化为可复用流程,默认只走合法免费源,镜像源(Sci-Hub 类)默认关闭,仅在用户显式知情并开启时才作最后兜底。

二、核心特性

合规优先:默认仅用 OpenAlex / Unpaywall / Semantic Scholar / DOAJ / Europe PMC / Crossref 出版社直链 / arXiv 预印本等合法免费源。
中文论文支持:中文题名经 OpenAlex 跨语言相关性检索解析出 DOI(已修复早期中文字符相似度恒为 0 的缺陷),再由合规源取 OA PDF;中文题名/作者输入均可用。
多形态输入:单篇 DOI、单篇 标题|作者|年份(或 标题_作者[_年份])、批量 .txt/.csv/.xlsx 列表。
自动校验:每个文件校验「开头为 %PDF、≥1KB、pypdf 可解析且页数≥1」,非 PDF(HTML 错误页/付费墙落地页)一律判失败并转备用源。
增量去重:以规范化 DOI 为去重键比对输出目录与历史 manifest,命中即跳过,支持反复运行不重复下载。
批量不中断:单批默认上限 20;单条失败单列记录,不影响其余。
抗封禁:每次请求前随机间隔(默认 1–3s)+ 单源连续失败熔断(默认 3 次停用)。
来源透明:manifest.csv 记录来源类型与 source_trust(合法OA=高 / 预印本=中 / 镜像源=低)。

三、安装与运行

脚本自带venv 自举:首次运行自动在技能目录内创建 .venv 并安装 requests / pypdf / openpyxl,之后复用。请使用受管 Python:
PY=”C:/Users/.workbuddy/binaries/python/versions/3.13.12/python.exe”SKILL=”C:/Users/.workbuddy/skills/academic-fulltext-fetcher”

四、用法示例

1) 单篇(DOI 或 标题_作者)

”$PY” ”$SKILL/scripts/fetch_papers.py” --input ”10.1038/s41586-021-03380-y” --output ”D:/Data/papers””$PY” ”$SKILL/scripts/fetch_papers.py” --input ”钢丝绳电磁检测信号的时空域理论分析_曹青松” --output ”D:/Data/papers”

2) 批量列表文件(.txt / .csv / .xlsx)

.txt:每行一个 DOI,或 标题 | 第一作者 | 年份(竖线分隔);也支持 标题_第一作者[_年份](下划线分隔,适合中文题名);空行忽略。
.csv/.xlsx:自动识别含 doi / 题名 / 作者 / 年份 的列(中英文表头均可)。
”$PY” ”$SKILL/scripts/fetch_papers.py” --input ”D:/Data/doi_list.txt” --output ”D:/Data/papers” --batch-limit 20

3) 启用镜像源兜底(仅合规未果时;需用户显式知情)

”$PY” ”$SKILL/scripts/fetch_papers.py” --input ”D:/Data/doi_list.txt” \     --output ”D:/Data/papers” --allow-mirror --mirror-url ”https://sci-hub.se” --email you@example.com

常用参数

参数
说明
--output
输出目录(默认 ./papers)
--config config.json
读取配置(见下)
--email
Unpaywall / OpenAlex 礼貌池邮箱(强烈建议,提升命中率与稳定性)
--batch-limit N
单批上限(默认 20)
--allow-mirror
 / --mirror-url
镜像源开关与基址(默认关;基址由用户提供,脚本绝不内置任何镜像地址)

五、配置文件(可选,config.json)

{  ”output_dir”: ”D:/Data/papers”,  ”allow_mirror”: false,  ”mirror_url”: ””,  ”email”: ”you@example.com”,  ”batch_limit”: 20,  ”delay_min”: 1.0,  ”delay_max”: 3.0,  ”max_consec_failures”: 3,  ”timeout”: 30}
配置优先级:默认值 < config.json < 命令行参数。

六、输出说明

文件名规则:[年份_第一作者_标题前30字].pdf(非法字符替换为 _,空格转 _)。
manifest.csv(UTF-8 BOM,Excel 可直接打开)字段:
序号、标题、DOI、来源类型、来源URL、状态、本地路径、大小KB、页数、source_trust
状态:成功 / 已存在 / 失败(失败行「本地路径」列写入失败原因)。
source_trust:合法OA=高 / 预印本=中 / 镜像源=低。

七、合规边界(红线)

镜像源默认关闭,仅当「全部合规渠道均未检出」且用户显式 --allow-mirror 并提供 --mirror-url 时才启用;命中即如实标注 source_trust=低。
CNKI(知网)/ 万方 / 维普等付费订阅库明确非合法 OA,脚本绝不抓取。
ChinaXiv(中科院预发布平台)搜索为前端 AJAX、PDF 直链与 OAI-PMH 对自动化访问返回 403 / 无权限,无法稳定自动化,需手动下载归档。
中文论文的可行合规路径:提供 DOI(或中文题名经 OpenAlex 解析出 DOI)→ 由 OpenAlex/Crossref/DOAJ 取 OA PDF。

八、已知限制

首选 DOI 输入:仅凭标题检索依赖 Crossref / OpenAlex / arXiv 题录匹配;当某标题存在大量同名/垃圾记录(个别学术 API 有 spam 条目)时,可能解析不到正确 DOI 而如实标记「未检出」,绝不会错配下载垃圾 PDF。
付费墙后的订阅期刊若出版社未提供 OA 版本,合规渠道无法取得全文;除非用户显式开启镜像源,否则如实标记「失败」,绝不伪造。
出版社直链下载已统一使用浏览器 UA + 来源 Referer(兼容会拒绝非浏览器 UA 的站点,如机械工程学报 cjmenet)。
个别网络环境下 OpenAlex 等聚合源响应偏慢可能触发超时降级,脚本会自动转下一源。

九、文件结构

academic-fulltext-fetcher/├── SKILL.md技能元规则、用法、渠道与合规说明      ├── README.md             # 本文件      ├── scripts/      │   └── fetch_papers.py             # 主脚本(venv 自举、渠道探测、下载校验、去重、manifest、熔断、日志)      └── references/          └── channels.md             # 各渠道 API、信任等级、降级与合规详细参考    

十、作者与许可

项目
内容
作者 / 维护者
【易捷云印】微信公众号
版本
1.0
许可证
MIT
技能标识
academic-fulltext-fetcher
反馈 / 贡献
【易捷云印】微信公众号

说明:本技能遵循「合规优先」原则,默认仅使用合法免费学术源,镜像源(Sci-Hub 类)默认关闭,仅作知情兜底。请在使用与分发时遵守所在机构与地区的合规要求。

相关学习资料