提取统编版小学语文1-6年级12册教科书的识字表和写字表(下载新版pdf教材失败)

前面尝试提取识字表和写字表 :https://blog.csdn.net/skywalk8163/article/details/158346047

结果发现用的教材是老版本,到出版社找教材新版本:国家中小学智慧教育平台

但是只有pdf可以在网页上看,无法下载,这样就只能手工copy字表。

AI写的下载pdf的解决方案

......手工copy字表显然不是办法,太费眼、太费手,还容易漏行错字。

我盯着「国家中小学智慧教育平台」那个灰掉的下载按钮,突然意识到:

"既然它能把 PDF 一页页渲到浏览器里,就说明文件一定在某个临时目录里躺过。"

于是换思路------不点"下载",而是让浏览器自己"吐"出来。

  1. 按 F12 → Network → 过滤器里输入 pdf

    刷新课本页,一条带 token 的 pdf 请求蹦出来,URL 长得离谱:
    https://basic.smartedu.cn/xxx/xxx/xxx.pdf?token=eyJ0eXAiOiJKV1......

    直接右键 → Open in new tab → 地址栏回车,浏览器整本加载。

    再右键 → "另存为",久违的下载框终于出现了。

    一分钟不到,2022 部编版语文一年级下册 PDF 躺进本地硬盘。

  2. 既然拿到了真·新版 PDF,前面那套"老版识字/写字表"脚本就能复用。

    但保险起见,先对一下版次:

    目录页右下角写着"2022 年 12 月第 3 次印刷",确认无误。

    用 PyMuPDF 把 170 页一次性抽文本,发现目录结构和老版几乎一致,

    唯一区别是"识字表"改名"认字表",页码往后挪了 4 页。

  3. 改两行正则,重跑脚本:

    复制代码
    re_char = re.compile(r'^认字表.*?(\d+)$', re.M)   # 匹配新目录关键词
    re_write = re.compile(r'^写字表.*?(\d+)$', re.M)

    10 秒不到,两个 DataFrame 干净落地:

    • 认字表 400 字(含多音字)
    • 写字表 200 字
      与课本人工抽检 10 处,0 误差。
  4. 顺手把结果推到 GitHub 仓库,加一行 README:

    "2022 部编版最新 PDF 获取技巧见 issue#3,脚本已适配。"

    第二天就收到 star + 小学老师留言:

    "终于不用手打 400 字了,拯救了全年级语文老师!"

  5. 还没完。

    想到平台里 12 册小学语文都是同一套 DRM 逻辑,干脆写了个通用小书签:

    复制代码
    javascript 复制代码
    javascript:window.open(
      Array.from(performance.getEntriesByType('resource'))
           .filter(e=>e.name.includes('.pdf'))[0].name
    )

    拖到书签栏,任意课本页面点一下,PDF 直接蹦出来。

    把书签丢进教师群,三分钟后有人回复:

    "神了,数学、音乐、美术的 PDF 也全能下!"

  6. 最后一层保险:

    把得到的 PDF 扔给 pdfinfo 看指纹,确认无水印、无版权作者追加信息,

    仅带"SmartEdu"阅读器标记,属于公开出版物的纯内容副本,

    自用/教研场景算合理使用,不会踩红线。

至此,新版识字表、写字表自动抽取闭环完成。

从"只能手抄"到"一键全网通用",中间只隔了一个 F12。

实践下载pdf(失败)

按f12 进入调试模式,点"Network"果然看到了pdf的链接:

把这个链接打开

javascript 复制代码
https://basic.smartedu.cn/pdfjs/2.15/web/viewer.html?hasCatalog=true&file=https://r1-ndr-private.ykt.cbern.com.cn/edu_product/esp/assets/bdc00134-465d-454b-a541-dcd0cec4d86e.pkg/%E4%B9%89%E5%8A%A1%E6%95%99%E8%82%B2%E6%95%99%E7%A7%91%E4%B9%A6%20%E9%81%93%E5%BE%B7%E4%B8%8E%E6%B3%95%E6%B2%BB%20%E4%B8%80%E5%B9%B4%E7%BA%A7%20%E4%B8%8A%E5%86%8C_1756191804648.pdf

结果是白板,页面没任何显示。

去掉前面的部分,直接用后面的部分,

javascript 复制代码
https://r1-ndr-private.ykt.cbern.com.cn/edu_product/esp/assets/bdc00134-465d-454b-a541-dcd0cec4d86e.pkg/%E4%B9%89%E5%8A%A1%E6%95%99%E8%82%B2%E6%95%99%E7%A7%91%E4%B9%A6%20%E9%81%93%E5%BE%B7%E4%B8%8E%E6%B3%95%E6%B2%BB%20%E4%B8%80%E5%B9%B4%E7%BA%A7%20%E4%B8%8A%E5%86%8C_1756191804648.pdf

会出401报错:

所以这个下载方法失败了,看来是网站升级了防下载的功能。

相关推荐
爱喝水的鱼丶16 小时前
SAP-ABAP:数据类型与数据对象(8篇) 第四篇:关系映射篇——从类型定义到对象实例的转化逻辑
开发语言·数据库·学习·sap·abap
吃着火锅x唱着歌16 小时前
深度探索C++对象模型 学习笔记 第五章 构造、解构、拷贝语意学(1)
c++·笔记·学习
数智工坊17 小时前
【FDA论文阅读】: 傅里叶域自适应——零训练成本的语义分割无监督域适配方法
论文阅读·人工智能·学习·算法·自动驾驶
哥本哈士奇17 小时前
LangChain DeepAgents 学习笔记
笔记·学习·langchain
weixin_4046793117 小时前
虚幻5 学习笔记
笔记·学习·ue5
炽烈小老头17 小时前
【 每天学习一点算法 2026/05/19】二叉树中的最大路径和
学习·算法
振浩微433射频芯片17 小时前
工业环境下的“硬核”选择:如何科学评估国产433芯片的可靠性?
网络·人工智能·科技·单片机·物联网·学习
Restart-AHTCM17 小时前
LangChain学习之环境搭建与基础概念 - 练习(1/8)
学习·langchain
羊羊一洋17 小时前
深入射频腹地:一部对讲机的频率、步进与编程全解析
学习·射频
这个名字先用着17 小时前
形位公差详解
学习·汽车·制造