实测手记:被百度文库下载券劝退的那个深夜,我用 1 个脚本 3 步免费存下全文
【免费下载链接】baidu-wenkufetch the document for free项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku
上周五傍晚,我在补一份下周一要交的行业报告,全网翻遍只剩百度文库有完整版本。点开前几页预览一切正常,翻到中部就开始"下载券不足""开通 VIP 解锁全文"连环弹窗,每翻一页都像过一道闸。那天晚上我把能想到的土办法全试了一遍,最后靠着开源脚本 baidu-wenku——一个纯前端 JavaScript,不装软件、不发网络请求、不改文档内容,在浏览器控制台粘贴执行,就免费把整篇文库文档保存成了本地 PDF。这篇实测手记,就是我完整跑通全流程的记录,参数、坑点和建议值都写在里面,希望能帮你少走我走过的弯路。
先看看它到底值不值得折腾
一句话概括工具定位:它是百度文库页面的"清理工",负责把广告、付费提示、推荐位等干扰元素清掉,把没加载完的内容全部触发出来,再把版式理顺,最后交给浏览器自带的打印功能输出 PDF。在动手之前,我先横向比了一圈市面上常见的路子,结果如下:
| 方案 | 我的亲测结果 |
|---|---|
| 浏览器截图/长截图 | 二十多页截到怀疑人生,长图断页、字迹模糊,PDF 里还搜不了文字 |
| 第三方下载工具 | 下载回来一堆捆绑安装包,文档还缺页,怕装出问题又卸了半天 |
| 充会员/买下载券 | 一次性几十块,为了一两篇文档真心不值 |
| 控制台粘贴脚本 | 免费、干净、五分钟出全文,性价比最高 |
全程实测:从拿到脚本到 PDF 落地,就这三步
第 1 步:把脚本拿到本地
终端里执行克隆命令:
git clone https://gitcode.com/gh_mirrors/ba/baidu-wenku进入项目目录后会看到,整个工具的核心就一个index.js文件,一百多行,结构非常干净:顶部是 Config 配置区,底下是执行逻辑。我习惯先打开扫一眼再动手,心里有个底。
第 2 步:打开符合规则的文档页面
在浏览器访问百度文库,打开要提取的文档。这里有个硬性前提:URL 必须是wenku.baidu.com/view/*格式,脚本的匹配范围就限定在这。如果你开的是搜索结果页或主页,执行了也不会有反应,先确认这一点再继续。
第 3 步:控制台粘贴执行
在文档页面按F12打开开发者工具,切到"控制台"(Console)标签,把index.js全部内容复制进去,回车执行。接下来不需要我做任何操作,脚本自动跑完整个流程,页面会依次出现这些变化:
- 🧹 广告、付费提示、导航栏、推荐位等二十多种元素被移除或隐藏;
- 📜 页面开始模拟真人阅读的节奏自动向下滚动,一屏一屏触发隐藏内容加载;
- 📐 边距、背景色、边框被重新整理,呈现适合打印的干净布局;
- 🖨️ 大约两秒后弹出打印对话框,把目标打印机选成"另存为 PDF",点击保存即可。
不想打印的话,也可以直接取消打印窗口,把网页另存为 mhtml 格式,内容同样完整保留。
它背地里干了啥:像一位只扫地不搬家的管家
执行之前我特意把源码逐行读了一遍,说真的,逻辑朴素得让人放心。它像一位被请进房间的管家——不碰你桌上的任何文件,只把垃圾拎走、把窗帘拉开、把门擦干净:
- 精准定位:借助 jQuery 选择器,按类名和 ID 锁定干扰区块,逐个清理;
- 隐藏而非硬删:对部分元素用
hide()而不是remove(),因为滚动时页面会动态重建节点,硬删容易触发Uncaught TypeError,隐藏既干净又稳妥; - 重写删除行为:脚本甚至拦截了页面自带的 remove 逻辑,防止向下滚动时把已加载的内容又删掉;
- 模拟滚动加载:通过定时器每 800 毫秒往下滚 700 像素,把原本需要"继续阅读"才能触发的内容全部加载出来;
- 覆盖打印样式:百度文库打印模式下有
body{display:none}这类样式,脚本把它覆盖掉,确保打印输出不空白。
一句话总结:它没有篡改任何文档内容,只做清理、加载和排版,剩下的交给浏览器原生打印能力。
两个可调旋钮:快了丢内容,慢了费时间
脚本的配置区只有两个变量,都在文件开头的 Config 段落里,改起来非常直观。
① 滚动间隔waitTime4Scroll,默认 800(毫秒)
- 数值偏大 → 加载更稳妥,但整体完成时间明显变长;
- 数值偏小 → 速度快,但部分章节没加载完就被跳过。
实测建议:文档 50 页以内保持默认 800 就行;更长或网络较慢时,调到 1200 左右更稳。
② 页边距margin4ReaderPage,默认"-75px auto"
- 绝对值过大 → 页面可能显示不全,内容被裁掉;
- 绝对值过小 → 纸张之间留白太多,浪费纸面。
多数文档用默认值就挺合适,只有当你打印出来发现"每页内容被切了一半"或"大片空白"时,再小幅调整这个值,配合打印对话框里的缩放比例一起微调即可。
三个翻车现场,我都替你撞过了
翻车一:脚本执行后页面毫无反应
排查顺序:先确认 URL 是不是wenku.baidu.com/view/*格式;再看控制台有没有红色报错;最后刷新页面重新执行一次。九成问题出在前两步,我那次就是开错了标签页。
翻车二:保存的 PDF 中间缺页
多半是滚动太快,部分内容没来得及加载。把waitTime4Scroll调大一点再试,或者先手动往下滚几屏触发加载后再执行脚本,都能缓解。
翻车三:打印预览里页面显示不全或留白过多
这是页边距没配好。微调margin4ReaderPage的数值,配合打印框里的缩放比例和纸张尺寸一起调,通常一两轮就能调到满意。
五个高频疑问,一次性答完
| 问题 | 回答 |
|---|---|
| 需要安装软件或插件吗? | 不需要,纯前端脚本,控制台粘贴即可 |
| 会修改文档内容吗? | 不会,只移除和隐藏页面元素 |
| 支持哪些浏览器? | Chrome 等带开发者工具的主流浏览器都可以 |
| 一次能处理多篇文档吗? | 可以,多开几个标签页分别执行 |
| 保存格式有哪些? | 打印另存为 PDF,或取消打印另存为 mhtml |
| 适合大规模下载吗? | 不适合,仅适合个人少量文档的临时存储 |
写在最后:工具好用,但分寸感更重要
一整天实测下来,我的评价是四个字:轻、快、稳。它不解决"批量搬运"的问题,也不该被拿去做商业用途,它只解决一个朴素的需求——偶尔遇到一篇需要完整阅读的文库文档,能体面地保存下来,离线慢慢看。如果你正被文库的付费墙和满屏广告劝退,不妨按上面三步试一次,全程不超过十分钟。脚本帮你省下的是时间和耐心,而资料的价值,最终还是要靠你自己的思考来兑现。
最后留一个问题给你:你最近一次因为文档付费墙而放弃的资料,是什么?试过之后,欢迎回来分享你的结果。
【免费下载链接】baidu-wenkufetch the document for free项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考