用途:给定一批 DOI(如 meta 分析筛选集),批量获取开放获取全文 PDF。仅通过合法 OA 接口工作,付费墙文章按设计获取失败,会列入 manual_needed.txt,供机构访问或馆际互借使用,不绕过出版商访问控制。
抓取流程:每个 DOI 按 arXiv(10.48550/arXiv.* 等 DOI)→ Unpaywall → PMC(Europe PMC/OA FTP/网页)→ OpenAlex → Crossref → 落地页的顺序尝试,直到找到有效 PDF(≥10 KB,含 %PDF- 头)。arXiv 形式的 DOI 直接解析到 arXiv PDF。
运行:需要 Python 3.10+(仅标准库)和联系邮箱(Unpaywall 服务条款要求);脚本按 0.3–0.5 秒间隔限速。命令:python "${CLAUDE_SKILL_DIR}/fetch_oa.py" dois.txt --output pdfs/ --email your@email.com,调试可加 --verbose。输入支持每行一个 DOI 的纯文本,或含 DOI 列的 TSV/CSV/Markdown 表格(可选 PMID、Title、FirstAuthor 列);PMID 可提升 PMC 查询可靠性,Title 用于标题一致性判定。
输出:PDF 保存为 {DOI_safe}.pdf,生成 pdfs/retrieval_report.json(可用 --report 覆盖)与 manual_needed.txt,并汇总 arXiv/OA/PMC/失败/跳过计数。报告记录 status、source、page_count、file_sha256 及 source_identity 评估(consistent/conflict/unresolved/unavailable);身份证据仅限首页前言区域(最多 40 行/4000 字符),PDF 元数据和文件名不作为身份依据,完整文本转换不会消除身份警告。
其他:references/find_available_pdf.js 可在 Zotero 中通过 Tools → Developer → Run JavaScript 手动运行,或右键“Find Available PDF”,复用用户自身的 OpenURL/机构代理配置;结果需手动记录。可选将 PDF 转为 Markdown:pip install pymupdf4llm,再运行 pdf_to_md.py(支持 -o、--pages、--force);图片会被跳过,仅存图注文本,纯扫描 PDF 转换效果较差。官方资料未提供具体收费或平台限制信息。