自动获取¶
自动获取从 DOI、准确的正式页面或经过哈希验证的冻结选集开始。每个出版社 adapter 必须把请求限制在批准的准确域名内。成功交付要求:
- 有效的出版社正式 PDF;
- 原样保留的出版社原始 BibTeX;
- DOI、题名、年份、venue 和作者范围一致;
- provenance 和 SHA-256 哈希能够证明两份文件属于同一论文。
Crossref、OpenAlex、Semantic Scholar、普通仓库和镜像都不能满足最终交付。
失败保持可见¶
无法访问的论文继续留在冻结清单中,并写入 manual-download.csv;临时网络或限流问题写入 retryable-downloads.csv。单篇失败不会中断其他论文。没有适配器的出版商以 unsupported_adapter 进入人工队列。处理人工队列的方法见人工下载。
使用可重复的 --defer-host <exact-hostname> 暂缓本次访问指定出版社。条目继续保留在冻结选集并进入人工队列,已核验的交付继续有效。
绑定、重跑与中断¶
在首次访问出版社前,输出目录会绑定一个冻结选集。重新运行时,只有全部记录路径和哈希仍匹配才会跳过已交付论文。为了避免覆盖,包含未绑定 PDF、BibTeX 或 acquisition ledger 的旧目录会被拒绝;应使用干净目录或明确的迁移/导入流程。
账本在每篇论文处理完后立即保存,因此中断(Ctrl+C、宿主超时、浏览器被关闭)后用同一命令和同一输出目录重跑即可续跑;中断那一篇的残留文件会移到 .arp-interrupted/,不会被删除。
主机、节奏与暂停¶
批量下载最多同时联系四个出版社主机(--parallel-hosts N;设为 1 恢复逐篇下载),每个主机仍一次只处理一篇论文。同一主机的请求会间隔进行;按 robots.txt 要求,www.usenix.org 的请求间隔 10 秒。遇到 HTTP 429、连续三次临时失败或机构登录失败后,该主机在本次运行剩余部分暂停。同一次运行中的 IEEE 论文共用一个专用浏览器,机构登录只需完成一次。
IEEE 的 PDF 或引用请求超时、浏览器意外失败时,会在五秒后自动重试一次;靠这次重试交付的论文会在 provenance 中记下 acquisition_retries。登录和权限失败从不自动重复。
运行时间超过 Agent 命令超时的命令,可以用 --background <任务目录> 在独立进程中运行;arp job status 报告进度和最终结果,并把结果中的状态、错误码和说明放到最外层,arp job list 列出全部任务。任何命令都可以加 --result-file <路径>,把 JSON 结果同时写入该文件。
DOI 清单¶
arp fetch --input-file <清单.txt> --output <目录> 逐行读取 DOI 或正式页面地址(跳过空行和 # 注释),全部交付到同一目录,并在同一进程中完成:整份清单共用一个 IEEE 浏览器和一次机构登录,请求间隔与主机暂停规则同批量下载。fetch-ledger.jsonl 为每篇论文写一行,结果中为每篇需要用户下载的论文给出 manual-fetch 命令。用同一命令重跑时,只获取该目录中尚未核验的论文。--layout flat 把 <短题名>--<id>.pdf、.bib、.provenance.json 直接放进输出目录,不再为每篇论文建子目录,路径更短。