Paper Download · 2026-07

论文下载工具:从溯源到「逼近零失败」的系统完善

围绕项目 26060138 当年用过的论文下载工具展开:先查清它是什么、那 150 篇是不是它下的,再诊断失败根因、给出无机构权限下的可行下载路径,最后把它完善成一套「给任意一篇标识符就尽力下到」的统一下载系统。

项目 26060138工具 scansci-pdf(第三方) 自建工具箱 /home/mzh/share/scansci-toolkit更新 2026-07-03

00概览

一页看懂这轮做了什么、拿到什么结果。
113 / 151
历史失败集里,合法免费重新下到的真论文(生医域)
84
仅 Europe PMC 一遍就救回(绿色 OA 主力)
~38%
随机跨学科新论文的合法 OA 命中率(无代理)
1
通往更高覆盖率的关键杠杆:住宅代理
四句话总结
  • 工具不是自研——是第三方开源项目 scansci-pdf(作者 GitHub Rimagination / PyPI),我们当年只是装来用。
  • 那 150 篇确证由它下载——它自己的批量日志里 149/150 文件名一一对得上。
  • 失败根因不在算法——在于垃圾输入、开放获取被反爬挡、付费墙无机构访问;且工具环境早已被系统 Python 升级搞坏。
  • 无机构权限的真解——合法「绿色 OA」(Europe PMC)为主力 + 住宅代理突破机房 IP 天花板 + NSTL 文献传递兜底。严格零失败不可达,但可逼近。

01工具溯源:scansci-pdf 是不是我们自研的?

结论:不是。是第三方开源项目,我们是使用方。

项目 26060138 当年用的下载工具是 scansci-pdf——一个学术论文下载 MCP 服务器(13+ 数据源并行竞速、机构 WebVPN/CARSI、Tor/FlareSolverr 绕 Cloudflare)。查证据:

证据结果
git remotegithub.com/Rimagination/scansci-pdf.git(仓库归第三方)
全部 36 个 commit 作者清一色 Rimagination,无任何我们的身份
发布渠道PyPI 公开包 scansci-pdf,Apache-2.0
落到本机2026-06 才 clone 进 Antigravity CLI 的 scratch 目录、装到 ~/.local/bin

所以准确说法:上游作者 = Rimagination;我们是使用方,通过 Antigravity/Gemini CLI 把它装来做文献下载。

02那 150 篇文章是它下的吗?

是。硬证据,非推测。
  • 工具自己的批量下载日志 ~/.scansci-pdf/batch_progress/*.jsonl 记着 717 条 DOI 下载记录(每条含来源/成败/落盘文件)。
  • 最终 selected_150/ 的 150 篇里,149 篇文件名一字不差地出现在这些日志中。
  • 命名 100% 是 scansci-pdf 的自动格式 作者年份_标题.pdf;落盘时间与日志、元数据缓存全在同一时段。

当时流程还原:批量跑 700+ DOI → 成功下 487 篇到 ~/downloads → 去重按相关性/影响因子/年份筛出最好的 150 篇。实际命中来源:NatureDirect 104、Sci-Hub 80、LibGen 72、Unpaywall 64、OpenAlex 42…

03失败诊断:174 个失败拆开看

去重后真正没下到的是 174 个,根因很具体、可修。
类别数量真相
需机构访问(Wiley/Elsevier/Nature…)67没配任何机构访问,全赌 Sci-Hub(而它成功率仅 0.198)
可重试·OA 抓取失败(多为 MDPI)45本是全开放,下载时浏览器层没起、被反爬挡了
需人工确认41出版商/DOI 存疑
非论文垃圾(PDB/数据集/摘要/书章)21压根不是论文,不该进队列
意外的关键发现:工具早就跑不起来了
原来的 ~/.local/bin/scansci-pdf 随系统 Python 从 3.11 升到 3.13 而失效(包在 3.11、默认解释器变 3.13)。所以「提高成功率」前先得重建环境——用 uv 建了专用 venv 才恢复可运行,并真下了一篇 arXiv 验证链路通。

04没有机构权限,怎么下这类文献?

三条腿走路。先说一个决定策略的现实。
Sci-Hub 从 ~2021 年底起基本不再收录新论文
而这批 56% 是 2024–2025 年的最新文献——也就是说,付费墙里最新的那批,Sci-Hub / LibGen 基本都没有。「没机构 = 全靠 Sci-Hub」行不通。

第 1 层 · 把免费的合法开放版挖干净(最大免费收益)

很多「付费墙」论文其实有免费合法版本:PMC / Europe PMC 绿色存档(NIH/基金资助论文过禁运期即免费上 PMC,哪怕出版商版收费)、预印本(bioRxiv/arXiv)、被 Cloudflare 挡住的 MDPI(起浏览器层可救)。

第 2 层 · 灰色源捞「老」付费文献(≤2021)

Sci-Hub 挂 Tor/干净代理 + LibGen——只对老论文有效,且属版权灰色地带(仅内部阅读)。

第 3 层 · 合法「文献传递」兜底

国家科技图书文献中心 NSTL(nstl.gov.cn,个人免费注册)、省市公共图书馆——官方合法递送,多数免费或几块钱一篇。这是没有大学身份时最接近「机构访问」的合法渠道。

05Sci-Hub 下的论文,能拿来引用写综述吗?

能。「引用」和「怎么下到的」是两码事。

引用一篇论文,跟你从哪儿拿到 PDF 完全无关。你引用的是那篇已正式发表的论文本身(作者/期刊/DOI),审稿人和期刊既不会问也无从知道你用什么渠道读的。用 Sci-Hub 读了再引用,不构成学术不端

灰色的只是「下载」这个动作(版权层面),它不影响「引用」的正当性。真正要注意的:

  • 别对外分发那些 PDF——自己读、写综述风险很低;打包共享/放进交付物给客户则是「再分发受版权保护文件」,风险等级不同。
  • 引用对着正式出版版本核——预印本要标注版本。
  • 复用整张图/表要单独申请授权——无论从哪拿的 PDF 都一样,这是所有综述的通例。
本项目的立场
灰色源(Sci-Hub/LibGen)仅用于内部研究阅读,下载的 PDF 不对外分发

06建成的系统:逼近「给一篇就下一篇」

统一下载器 paperfetch + FlareSolverr 真浏览器 + 实测覆盖率。

目标既然是完善下载系统、尽可能多地下载,就把所有获取渠道做成瀑布流(一个源失败自动落下一个),并做成一个「给任意标识符 → 尽力下到」的统一入口 paperfetch.py。输入可以是 DOI / PMID / PMCID / arXiv / 文章 URL / 标题。

Europe PMC 全文 Unpaywall OpenAlex Semantic Scholar arXiv / 预印本 Crossref 出版商链 FlareSolverr 兜底 Sci-Hub/LibGen(门控)

关键有效路径

弃用 scansci-pdf 自带竞速引擎(对付费墙每篇干等 50–180s、且 Sci-Hub 从本机 IP 全封),改直取。其中最关键的一步是 Europe PMC REST 全文接口/{PMCID}/fullTextPDF,主机在 EBI 不走反爬)——把大量「Wiley/Elsevier 付费墙」论文的 PMC 绿色存档一遍拿回 84 篇。

实测覆盖率(诚实数字)

场景命中率说明
生物医学批(脂代谢/动脉粥样硬化)75% 113/151生医 PMC 绿色 OA 最全
随机跨学科 2024+ 论文~38% 9/24一般文献 OA 率低,大量新付费墙 + 冷门期刊

领域差异巨大:生医能到 3/4,通用文献只有 1/3 左右。差距全在付费墙且无任何免费副本的论文。

07天花板与最大杠杆

要继续往 100% 顶,卡点只有一个:出口 IP。

用证据确认了:这台服务器的「数据中心 IP」是天花板——MDPI 用 Akamai(不是 Cloudflare)封死 PDF 端点,连 FlareSolverr 真浏览器都过不了(同一个机房 IP);Sci-Hub 从这个 IP 完全被封;Wiley/Nature 直链对机房 IP 返回 403。

唯一真解 = 住宅代理(residential proxy)
换住宅 IP 后,出版商直链、MDPI、Sci-Hub/LibGen 一大片会通。这是从 ~40% 跳到 ~85–90% 的唯一最大杠杆。系统已留好接口(PAPERFETCH_PROXY 环境变量),给一个代理即可点亮。注意:即便有代理,Sci-Hub 仍没有 2021 年后的新文,最新付费墙的最后一段只能走 NSTL 文献传递。

代理与 Claude 风控(澄清)

代理只给下载脚本发往出版商/Sci-Hub 的请求用,不经过 Anthropic、不路由 Claude 的流量、Anthropic 也看不到——用不用下载代理,跟 Claude 账号风控没有技术关系。真正的灰色地带在版权(Sci-Hub),是使用者与出版商之间的事,且仅在开灰色源时涉及。也完全可以不碰代理,走 100% 合法路线(合法 OA + NSTL 文献传递)。

现实的目标分层

配置可达覆盖率
现在(纯合法 OA,无代理)通用 ~40% / 生医 ~75%
+ 住宅代理 + 灰色源~85–90%(拿到有任何灰色副本的付费墙论文)
+ NSTL 文献传递兜底逐步逼近 ~99%(最后几个百分点是人工/付费)

08指令日志

本轮对话中,用户给出的原始指令(按顺序,原话记录)。
我在做项目编号为:26060138 的项目时,当时做了一个论文下载的工具
① 2026-07-02 · 起点
② 2026-07-02
scansci-pdf 是我们自己开发的吗
③ 2026-07-02
那 150 篇文章是通过这个工具下载的吗?
④ 2026-07-02
那现在怎么完善这个工具,让它下载的成功率更高一些?如何应对下载失败的问题?
⑤ 2026-07-02
机构访问权限我都没有,你看怎么才能下载这样的文献?
⑥ 2026-07-02
对于 Sci-Hub 这类灰色资源的使用,我可以拿来引用写综述吗?
⑦ 2026-07-02
可以的,我下载的 PDF 不对外分发。
⑧ 2026-07-02
我的目标不是去写这篇综述,而是完善下载论文的系统,尽可能多地下载文献。理想状态下,只要提供一篇文章,就能成功下载,不存在失败的情况。
⑨ 2026-07-03
我为什么要给你代理地址?这会影响我的 Claude 风控吗?
⑩ 2026-07-03 · 本页
将以上内容总结好,以网页形式输出,网址设置为:lunwenxiazai.sinogenomics.com,并将我给你的指令日志也加进去
论文下载系统调研与完善纪要 · 项目 26060138 · 生成于 2026-07-03 · 自建工具箱 /home/mzh/share/scansci-toolkit(paperfetch.py 等)