/zhihu-backup-collect

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

Primary LanguageTypeScript

知乎备份剪藏

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

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

注:此项目爬蟲,仅用于用户日常保存喜欢的内容。请尊重内容作者权利,切勿用于抄袭与盈利。

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

Usage

安装油猴脚本:https://greasyfork.org/zh-CN/scripts/486538-%E7%9F%A5%E4%B9%8E%E5%A4%87%E4%BB%BD%E5%89%AA%E8%97%8F (未进行全面测试,可能存在bug)

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

  • 复制 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.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:
    • 立项