把上面②里的 Token 一起用上(从本页②处读取)。
如何获取 PDF 直链(第③/④步,工具已自动完成,这里供手动查看)
说明:用本工具时,PDF 直链由服务端自动从清单接口解析,你不需要手动复制它,给详情页链接 + Token 即可。下面方法仅用于你想在浏览器里亲自查看/验证,或往「④ 直接下载」框手动粘贴。
方法一 · 手工(开发者工具 Network)
- 在教材详情页按
F12 打开开发者工具 → Network(网络) 选项卡。
- 在顶部过滤框输入
.pdf,刷新或翻看页面,找到以 .pdf 结尾的请求(地址形如 https://r2-ndr-private.ykt.cbern.com.cn/edu_product/...xx.pdf,这就是第④步要的链接)。
- 右键该请求 → Copy → Copy link address,即得到 PDF 直链。
方法二 · 控制台直接打印(推荐,等价于上面的手工查找)
(async () => {
// 在教材详情页的 Console 里粘贴运行,自动打印并复制 PDF 直链
const m = location.search.match(/contentId=([^&]+)/);
if (!m) { console.error("请先在浏览器打开教材详情页"); return; }
const cid = m[1];
const res = await fetch(`https://s-file-2.ykt.cbern.com.cn/zxx/ndrv2/resources/tch_material/details/${cid}.json`);
const d = await res.json();
const urls = [];
(d.ti_items || []).forEach(it => {
if ((it.lc_ti_format || "").toLowerCase() === "pdf")
(it.ti_storages || []).forEach(u => { if (u.endsWith(".pdf")) urls.push(u); });
});
if (!urls.length) { console.error("该教材未找到 PDF 资源"); return; }
urls.forEach((u, i) => console.log(`PDF 镜像${i+1}:`, u));
copy(urls[0]);
console.log("已复制第一个 PDF 直链到剪贴板");
})();
若控制台 fetch 被跨域(CORS)拦截,就用方法一手动复制,或直接使用本工具(服务端拉取不受浏览器 CORS 限制)。