Skip to content

油猴脚本:知乎备份剪藏,将你喜欢的回答/文章/想法保存为 markdown / zip / png

Notifications You must be signed in to change notification settings

qtqz/zhihu-backup-collect

Repository files navigation

知乎备份剪藏

在这个互联网没有记忆的时代,帮你保存知乎上珍贵的内容,方便日后查阅。

  • 📑复制知乎文章/回答/想法为 Markdown
  • 📁下载文章/回答/想法为 zip(包含图片与文本,以及赞数时间等信息)
  • 📝下载文章/回答/想法为纯文本
  • 🖼剪藏文章/回答/想法为图片
  • ✏可选添加保存备注
  • 💬可选保存当前页评论

注:此项目爬蟲🐛,仅用于用户日常保存喜欢的内容。请尊重内容作者权利,切勿用于抄袭与盈利。被保存的内容亦不能作为证据使用。

此项目基于Howardzhangdqs/zhihu-copy-as-markdown(MIT)开发而来,感谢原作者的探索。原作者实现了基本的 Markdown 解析和 zip 下载,咱进行优化并适配各种场景和内容类型,添加存图、备注和评论支持。

如果你喜欢此项目,想要赞赏支持💰,可扫描赞赏码

Usage

安装油猴脚本:greasyfork - 知乎备份剪藏(未进行全面测试,可能存在bug)。在此之前,你需要有一个脚本管理器,如 Tampermonkey(油猴,篡改猴)。

鼠标移到知乎内容上,会出现保存按钮,点击即可保存(到下载目录)。已支持的页面有关注页、个人主页、回答页、问题页、文章页、想法页、收藏夹页、推荐页、搜索结果页;已支持的内容有文章、回答、想法。具体功能解释:

  • 复制 Markdown:复制到剪贴板,语法见Markdown Reference
  • 下载 zip:将内容的图片、Markdown 文本、信息(赞数、时间等)、当前页评论(如果启用)保存为 zip,文件名格式标题_作者_日期_备注.zip.md文件请用文本方式打开(如使用 Notepad3),语法同上。
  • 下载纯文本:将内容转为 Markdown 文本,并添加信息与评论(如果启用),保存为 .md单文件。
  • 剪藏图片:将当前内容(和评论)截为 PNG 图片,会自动隐藏你的头像以保护隐私。请先滚动到底确保所有图片都加载,否则图片会是空白
  • 备注:备注会保存在文件名末尾,最长60字符,空格会转义为“-”,不能包含 \ / : * ? " < > |。提示:可以选中拖动内容中的字到备注栏。
  • 保存评论:执行以上操作时包含当前显示出来的评论,只能保存内容下方的(弹出式窗口的评论不能)。

选项开关:

在目标页点击油猴,再点击脚本脚本下方的开关以调整

可能的问题:

  • 能不能保存更多评论?不能,可使用下面推荐
  • 如何保存PDF?右键-->打印-->打印为PDF
  • 能否批量保存某答主/问题?不能,请找爬蟲,或使用下面推荐
  • 已知问题:保存图片时部分样式(点赞栏等)轻微异常
  • 已知问题:未适配视频页和部分视频
  • 已知问题:如果想法有大于 4 张图,则只能保存前 4 张
  • 在关注页等页面,无法获取作者个性签名
  • 提示:个人页的想法,点击发布时间,即可进到想法页,保存评论
  • 如果脚本安装后无法运行(管理器中显示已启用未执行),请至浏览器 - 扩展 - 打开开发者选项

其他推荐:

Dev

pnpm i

0.7.11+已启用更方便的测试:

  1. 允许脚本管理器 Tampermonkey 访问文件网址 右键插件图标-插件管理页面-访问文件网址 或者参照官方 faq
  2. 在脚本管理器中安装scripts/dev.js,并且修改其@require 为正确的路,以调用本地的dist/bundle.js
  3. pnpm dev
  4. 刷新目标网页
pnpm build

原理

  1. 获取页面中所有的富文本框 RichTextDOM
  2. DOM 使用 ./src/lexer.ts 转换为 Lex
  3. Lex 使用 ./src/parser.ts 转换为 Markdown
  4. 根据每个 DOM 获取标题等信息

TODO

  • 下载文章时包含头图
  • TOC解析
  • 解析当前页评论为Markdown
  • 为Markdown添加frontmatter
  • [ ] 考虑移除info.json
  • [ ] 用户自定义配置(麻烦,脚本开源,请自行修改)
  • 可选是否保存图片
  • 存长图时自动使图都加载
  • 可选是否自动展开评论
  • 整理程序框图
  • 确认与 知乎增强 脚本的兼容性
  • 下载想法中的视频
  • 评论解析器,用于解析翻页后的评论并复制
  • 更多可配置项(开关)

Changelog

  • 24.11.21(0.9.23):
    • 复制时可以包含 frontmatter 信息了(需通过油猴菜单手动打开)
    • 添加了油猴脚本选项菜单
  • 24.11.13(0.9.22):
    • 修复两处截图样式异常问题
    • 修复浏览器窗口过窄时按钮溢出屏幕的问题
    • 修复按时间排序的问题被误判为回答的问题
  • 24.10.24(0.9.18):
    • 修复保存分段引用内容未分段问题
    • 修复保存带标点加粗内容在阅读器中误加粗问题
    • 修复保存段首有空格内容在阅读器中误判为代码块问题
    • 修复收藏夹页无法保存部分图片问题
    • 保存图注(图片下方灰字)作为斜体的普通段落
    • 复制除想法外内容时添加标题
  • 24.8.26(0.9.11):
    • 修复保存转发的想法异常
    • 修复新的样式异常
    • frontmatter 添加作者个性签名
  • 24.7.10(0.9.7):
    • 修复搜索结果页保存报错
    • 修复获取评论数量不对
  • 24.6.13(0.9.6):
    • 修复新的截图出错问题
  • 24.6.12(0.9.5):
    • 文章页截图不会再截到按钮了
    • 移除没图片时多余的 assets 文件夹
    • 添加保存为单文件功能
    • 支持保存评论中贴纸表情
    • 修复评论中图片重复的问题
    • 优化体验,写备注时可以把文本框拖大
  • 24.3.29(0.8.25):
    • 移除没图片评论时多余的 assets 文件夹
    • 修复新的无法保存评论问题
    • 下载文章时包含头图
  • 24.3.28(0.8.22):
    • 隐藏已折叠内容下的按钮
    • 修复保存无名用户内容出错
    • 修复按钮干扰选择文字的问题
    • 修复点击保存评论时奇怪的跳转问题
  • 24.3.27(0.8.18):
    • 保存失败时给予补救机会
    • 修复按钮被目录遮挡无法点击
    • 修复无法保存机构号主页内容
    • 修复 url 获取错误
    • 内容子标题从 h2 开始
    • 解析参考文献
    • 解析目录
  • 24.3.20(0.8.8):
    • 修复保存匿名用户内容出错
    • 增加保存失败原因提示
  • 24.3.4(0.8.7):
    • 更方便的测试
    • 解析评论为Markdown
    • 评论图片本地化
    • 完善解析评论修复bug
    • 修复zip内文件日期错误问题
    • 修复无法下载视频问题
    • 适配推荐页、搜索结果页
    • info中添加ip属地(如果有)
    • 修复想法无法保存图片
  • 24.2.29(0.7.10):
    • 备注改为最长60字
    • 修复个人页无法保存想法问题
    • 修复保存zip处理评论可能出错问题
  • 24.2.4(0.7.7):
    • 为Markdown添加frontmatter
    • 修正下载md内的图片路径为本地路径
    • 对于有目录的内容,减轻按钮与目录的重叠
  • 24.1.19(0.7.4):
    • 截图适配专栏文章
  • 24.1.13(0.7.x):
    • 粗略解析评论并添加到zip
    • 修复大量bug
    • 准备发布
  • 24.1.13(0.6.x):
    • 适配想法中的复杂情形
  • 24.1.11(0.5.x):
    • 添加截图功能
    • 初步适配想法
  • 24.1.2(0.4.x):
    • 初步重制
  • 23.12.29:
    • 立项

About

油猴脚本:知乎备份剪藏,将你喜欢的回答/文章/想法保存为 markdown / zip / png

Topics

Resources

Stars

Watchers

Forks