百度文库文档存不下来?一个开源脚本把免费存PDF的时间从半小时压到3分钟
百度文库文档存不下来?一个开源脚本把免费存PDF的时间从半小时压到3分钟
【免费下载链接】baidu-wenkufetch the document for free项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku
深夜十一点,你赶一份方案,在百度文库翻到正合适的资料,点开却要 5 张下载券,复制提示"会员专享"。百度文库的下载限制卡住了太多人——而开源脚本 baidu-wenku 就是专治这个痛点的免费工具:它清掉文库页面的广告、遮挡和冗余模块,让浏览器自带的打印功能把整篇文档完整导出为 PDF,不装软件、不花一分钱。
为了存下这篇文档,我把能踩的坑都踩了一遍
先讲我的真实经历,你大概率能对号入座。去年我写行业报告,需要保存一篇 40 多页的文库资料,前后试了三种办法,全部翻车:
- 截图拼页:一屏一屏截,截了 40 多张图,还要手动拼接。拼完发现字太小看不清,漏了两页还不知道。
- 在线转换网站:把链接贴上去等解析,结果要么提示"文档加密无法转换",要么转出来的 PDF 全是乱码。更别提把链接交给第三方网站那点隐私顾虑。
- 浏览器插件:装了几个"文库下载神器",有的要注册登录,有的装上就失效,还有一个静悄悄申请了一堆不明权限,吓得我赶紧卸了。
这些方案的代价差异,我用一张表对比过:
| 方案 | 时间成本 | 文档完整度 | 隐私风险 | 花钱 |
|---|---|---|---|---|
| 截图拼页 | 高 | 低,易漏页模糊 | 无 | 否 |
| 在线转换站 | 中 | 低,常乱码 | 高,需提交链接 | 部分收费 |
| 浏览器插件 | 低 | 中 | 中,权限不明 | 部分收费 |
| baidu-wenku 脚本 | 低 | 高 | 无,本地运行 | 完全免费 |
就在我准备放弃时,我在开源社区翻到了这个叫 baidu-wenku 的小项目。它解决了我前面遇到的所有问题,而且思路简单得让我意外。
baidu-wenku 到底做了什么:一场"减法"加一次"归位"
它不破解、不抓数据、不碰服务器,整个项目核心就是一个index.js脚本,干的事可以概括成三步:
- 点掉"继续阅读":自动点击页面上被折叠的内容入口,把正文全部展开;
- 做减法:把顶部导航、侧边栏、底部推荐、付费角标、浮动广告这些干扰元素全部隐藏或移除,只留正文;
- 归位:把正文的边距、背景色、边框整理成"打印友好"的样式,再模拟缓慢向下滚动,把按需加载的剩余页面内容一页页"逼"出来。
翻译成人话:它就像在你打印前,帮你把桌面上的杂物全收进抽屉,再把文档一张张按顺序摊平。滚动加载结束后,脚本会自动唤起浏览器的打印窗口,你选"另存为 PDF"就得到一份干净完整的文档。项目里还有个images/workflow.txt,用一张 ASCII 流程图把这个"清理 → 纯净页面 → 打印 PDF"的过程画得明明白白,好奇的可以打开看一眼。
至于适用人群,它非常明确:学生、研究者、偶尔需要保存几篇文库文档做离线阅读的个人用户。它不适合高频批量下载——那种需求,本来就该走平台的正规付费渠道。
从拿到脚本到存出 PDF,完整跑通只需 4 步
原理讲完,直接上手。整个过程四步,全程不需要装任何软件:
第 1 步:拿到 index.js
克隆仓库到本地:
git clone https://gitcode.com/gh_mirrors/ba/baidu-wenku进入目录打开index.js,全选复制。项目很小,核心就这一个文件,README.md里也写清了使用方法和免责声明。
第 2 步:打开目标文档并等它加载完
用 Chrome 打开网址以wenku.baidu.com/view/开头的文档页。长文档会分段加载,先把页面滚到底部再滚回顶部,确保前面的内容都已就位。
第 3 步:粘贴到控制台并执行
按 F12 打开开发者工具,切到"控制台"(Console),粘贴代码回车。你会看到页面开始自动滚动——这是脚本在触发剩余内容加载,默认每 800 毫秒滚一屏。我实测一篇 30 页的文档大概需要 20~40 秒,取决于网速。
第 4 步:打印保存
滚动结束后约 2 秒,脚本会自动弹出打印窗口。把目标打印机选成"另存为 PDF",勾上"背景图形",保存即可。想保留网页原貌?直接关掉打印窗口,用浏览器的"另存为"选 MHTML 格式,页面连同样式一起存下来,效果一样干净。
亲测数据:一篇 42 页的行业研报,从执行脚本到 PDF 落地全程不到 3 分钟,导出的 PDF 里没有一条广告、没有一页空白。
两个参数,把脚本调到最适合你的状态
跑通默认配置后,你会发现index.js顶部(标着 Config 注释)有两个可以改的变量,能让脚本更贴合你的网络和文档类型:
- waitTime4Scroll:默认
800,滚动间隔毫秒数。网速慢就调到 1000~1500,避免内容没加载出来就被跳过;网速好、机器快,可以压到 500~600 提速。 - margin4ReaderPage:默认
"-75px auto",控制正文四周留白。打印出来发现边缘内容被裁,就把绝对值调小,比如"-60px auto";发现空白太多,就调大到"-85px auto"。
修改方法很简单:粘贴到控制台之前,直接改这两个值。我自己的经验是——遇到"打印缺页"的问题,先把第一个参数往大调 200,能解决九成情况。
它帮不上忙的场景,和用之前该想清楚的事
任何工具都有边界,说清楚反而更放心。以下情况它确实无能为力:
- 复杂动态文档:带特殊交互、动态渲染的文档,脚本够不着;
- 服务端加密内容:原文本身加密或平台限制严格的文档,存不全就是存不全;
- 页面改版:百度文库哪天改了页面结构,脚本里的选择器可能全部失效——这也是开源项目需要关注更新版本的原因。
合规方面,三条底线请一定守住:
- 本工具仅限个人学习研究,谢绝任何商业用途;
- 只适合"个人 + 少量"文档的临时便携存储,确有大量使用需求,请注册百度账号,按平台指引使用下载券或积分下载——这是最体面也最安全的方式;
- 脚本只做隐藏和移除页面元素、不改动任何文档内容,但使用前请确认你拥有该文档的合法访问权限,并遵守百度文库的用户协议与知识产权相关法律。
把技术用在对的方向上,它就是效率工具;用偏了,就成了给别人添麻烦的捷径。希望 baidu-wenku 能帮你在深夜赶工时,少一点和下载券的纠缠,多一点早点睡觉的时间。
【免费下载链接】baidu-wenkufetch the document for free项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
