概述 / Summary
在配置了机构(南京理工大学 / CARSI)的情况下,Springer Nature 付费正文全部无法抓取:CLI 报告 success / verified_match=True,但实际落盘的是免费的补充材料(Supplementary / ESM),不是正文。排查后定位到 3 个相互独立的问题(1 个死链、1 个文案不匹配、1 个 PDF 选链逻辑缺陷)。开放获取的 Elsevier(JMRT) 与 MDPI 正常,说明问题特定于 Springer 授权路径。
Even after a successful institutional (CARSI) login, every Springer Nature paywalled full text fails: the CLI reports success / verified_match=True, but the file actually saved is the free Supplementary Material (ESM), not the article. Root-caused to 3 independent issues below. Elsevier(JMRT) and MDPI open-access downloads work fine, so this is Springer-specific.
环境 / Environment
- instsci
0.1.1
- cloakbrowser
0.3.31
- Python
3.11.15, Windows 11
- 机构 / Institution: Nanjing University of Science and Technology(CARSI,
carsi_idp_name 已配置)
复现用 DOI / DOIs to reproduce
10.1007/s11837-026-08536-7 (JOM)
10.1007/s10853-026-13266-x (J. Mater. Sci.)
instsci papers dois.txt --publisher springer \
--institution "Nanjing University of Science and Technology" \
--output ./runs/springer --carsi-portal-preauth --retry
Bug 1 — carsi-login --publisher springer 打开的是 404 死链
instsci/data/publisher_carsi.json 里 springer 的 login_url 已失效:
"springer": { "login_url": "https://link.springer.com/institutional-login", ... }
验证:
$ curl -s -o /dev/null -w "%{http_code}" -L "https://link.springer.com/institutional-login"
404
CLI 日志:
instsci.carsi: Browser URL: https://link.springer.com/institutional-login
Login timed out after 5 minutes.
Federated login failed.
浏览器停在 Springer 的 “Page not found — Sorry, the page you requested is unavailable.”,机构登录流程根本无法开始。
建议:Springer 现已取消该独立入口,机构登录改为在文章页点 “Log in via an institution”,或走 WAYF(https://wayf.springernature.com/...)。建议把 login_url 改为文章页 + 点击机构登录按钮的流程,或直接指向当前 WAYF 端点。
Bug 2 — 机构登录按钮文案已改成 “Log in via an institution”,与内置 marker 不匹配
instsci/publisher_profiles.py 的 SPRINGER_PROFILE:
sso_text_markers=(
"institutional login",
"log in through your institution",
"access through your institution",
"openathens",
),
而 SpringerLink 当前文章页(付费)右侧 “Access this article” 卡片里的按钮文案是 “Log in via an institution”(见附图),上述任何 marker 都不是它的子串,导致自动流程点不到这个按钮 → 无法进入机构登录 → 拿不到授权。data/publisher_carsi.json 里的 search_selector(input#institution ...)在新版 WAYF 页面同样可能失效。
建议:把 "log in via an institution" 加入 sso_text_markers,并按当前 WAYF 页面更新 search_selector / result_selector。
Bug 3 —(最关键)抓到免费补充材料(ESM)冒充正文,且被误判为 verified
即便手动完成机构登录、文章页显示已获授权,papers / publisher-batch 落盘的仍是补充材料:
- DOI
10.1007/s11837-026-08536-7 落盘文件 7 页、1,248,192 字节,首页文本为:
Supplementary Material for: Deformation behavior and constitutive model modification with friction correction of TC4 Titanium alloy during hot compression
- 无 Abstract、无 References —— 明显不是正文(正文含 Abstract/Introduction/.../References)。
- 但
manifest.csv 记为 status=success, verified_match=True。补充材料里含标题/DOI 文本,骗过了校验。
推测原因:SPRINGER_PROFILE 的 PDF 选链偏好命中了页面上的免费 ESM download 链接,而未优先走授权的
https://link.springer.com/content/pdf/{doi}.pdf(付费正文)。
建议:
- 正文优先严格使用
content/pdf/{doi}.pdf,仅当其被授权返回(非 HTML 付费墙)时才算成功;
- 校验环节增加“非补充材料”判定:命中首页/文件名含
Supplementary Material for、ESM、MOESM、/MediaObjects/ 等应判 unverified,不得记 success;
verified_match 不应仅凭标题/DOI 文本命中,应结合正文结构(Abstract/References/页数)判断。
影响 / Impact
Springer Nature 一整个 provider 在付费场景下静默失败(返回补充材料且标 success),使用者若不逐页核对会误以为拿到了正文。建议至少先修 Bug 3 的误判(宁可报 unverified 也不要假 success)。
(附:文章页 “Access this article → Log in via an institution” 按钮截图见评论。)
概述 / Summary
在配置了机构(南京理工大学 / CARSI)的情况下,Springer Nature 付费正文全部无法抓取:CLI 报告
success/verified_match=True,但实际落盘的是免费的补充材料(Supplementary / ESM),不是正文。排查后定位到 3 个相互独立的问题(1 个死链、1 个文案不匹配、1 个 PDF 选链逻辑缺陷)。开放获取的 Elsevier(JMRT) 与 MDPI 正常,说明问题特定于 Springer 授权路径。Even after a successful institutional (CARSI) login, every Springer Nature paywalled full text fails: the CLI reports
success/verified_match=True, but the file actually saved is the free Supplementary Material (ESM), not the article. Root-caused to 3 independent issues below. Elsevier(JMRT) and MDPI open-access downloads work fine, so this is Springer-specific.环境 / Environment
0.1.10.3.313.11.15, Windows 11carsi_idp_name已配置)复现用 DOI / DOIs to reproduce
10.1007/s11837-026-08536-7(JOM)10.1007/s10853-026-13266-x(J. Mater. Sci.)Bug 1 —
carsi-login --publisher springer打开的是 404 死链instsci/data/publisher_carsi.json里 springer 的login_url已失效:验证:
CLI 日志:
浏览器停在 Springer 的 “Page not found — Sorry, the page you requested is unavailable.”,机构登录流程根本无法开始。
建议:Springer 现已取消该独立入口,机构登录改为在文章页点 “Log in via an institution”,或走 WAYF(
https://wayf.springernature.com/...)。建议把login_url改为文章页 + 点击机构登录按钮的流程,或直接指向当前 WAYF 端点。Bug 2 — 机构登录按钮文案已改成 “Log in via an institution”,与内置 marker 不匹配
instsci/publisher_profiles.py的SPRINGER_PROFILE:而 SpringerLink 当前文章页(付费)右侧 “Access this article” 卡片里的按钮文案是 “Log in via an institution”(见附图),上述任何 marker 都不是它的子串,导致自动流程点不到这个按钮 → 无法进入机构登录 → 拿不到授权。
data/publisher_carsi.json里的search_selector(input#institution ...)在新版 WAYF 页面同样可能失效。建议:把
"log in via an institution"加入sso_text_markers,并按当前 WAYF 页面更新search_selector/result_selector。Bug 3 —(最关键)抓到免费补充材料(ESM)冒充正文,且被误判为
verified即便手动完成机构登录、文章页显示已获授权,
papers/publisher-batch落盘的仍是补充材料:10.1007/s11837-026-08536-7落盘文件 7 页、1,248,192 字节,首页文本为:manifest.csv记为status=success, verified_match=True。补充材料里含标题/DOI 文本,骗过了校验。推测原因:
SPRINGER_PROFILE的 PDF 选链偏好命中了页面上的免费 ESMdownload链接,而未优先走授权的https://link.springer.com/content/pdf/{doi}.pdf(付费正文)。建议:
content/pdf/{doi}.pdf,仅当其被授权返回(非 HTML 付费墙)时才算成功;Supplementary Material for、ESM、MOESM、/MediaObjects/等应判unverified,不得记success;verified_match不应仅凭标题/DOI 文本命中,应结合正文结构(Abstract/References/页数)判断。影响 / Impact
Springer Nature 一整个 provider 在付费场景下静默失败(返回补充材料且标 success),使用者若不逐页核对会误以为拿到了正文。建议至少先修 Bug 3 的误判(宁可报
unverified也不要假success)。(附:文章页 “Access this article → Log in via an institution” 按钮截图见评论。)